2011-07-24 137 views
1

我想從我的mongoDb數據庫基於_id刪除一些東西,我發誓別的東西被刪除,除了我想要的東西。我使用的是笨庫是這樣的功能:MongoDb刪除查詢

public function delete($collection = "") 
{ 
    if(empty($collection)) 
    { 
     show_error("No Mongo collection selected to delete from", 500); 
    } 

    try 
    { 
     $this->db->{$collection}->remove($this->wheres, array('fsync' => TRUE, 'justOne' => TRUE)); 
     return(TRUE); 
    } 
    catch(MongoCursorException $e) 
    { 
     show_error("Delete of data into MongoDB failed: {$e->getMessage()}", 500); 
    } 

} 

而且我這樣做是爲了刪除

$this->mongo_db->delete('videos', $data = array('_id' => $id)); 

這肯定刪除,但不是我想要的。我是mongo的新手,所以我應該在哪裏檢查錯誤?

+0

我遇到了類似的問題。 CodeIgniter的mongodb庫似乎不能刪除任何東西 –

回答

1

它可能是由許多因素造成的。

  • 如果檢查你的$ id是一個字符串或MongoId(如果您使用PHP官方蒙戈司機,我認爲它的PHP代碼,只需使用new MongoId($id_as_string);(這應該是一個MongoId)
  • 可以還與safe選項(不同步)測試,並檢查你獲得的結果是什麼(「安全」查詢返回的數組不是一個布爾值)
0

那個函數需要一個參數,它是集合的名字,你使用兩個來調用它。檢查文檔/源代碼ee如何指定哪裏文件。