MongoDb删除查询

时间:2011-07-24 14:25:48

标签: php mongodb

我正在尝试从基于_id的mongoDb数据库中删除一些东西,我发誓除了我想要的任何其他东西都被删除。我正在使用codeigniter库这是函数:

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的新手所以我应该在哪里检查错误?

2 个答案:

答案 0 :(得分:1)

它可能由许多因素引起。

  • 检查你的$ id是字符串还是 MongoId (如果你使用php官方mongo驱动程序,我假设它的php代码,只需使用new MongoId($id_as_string);(它应该是一个MongoId )
  • 您还可以使用safe选项进行测试(不同步)并检查您获得的结果(“安全”查询返回数组不是布尔值)

答案 1 :(得分:0)

该函数需要一个参数,即集合的名称,用两个参数调用它。检查docs / source以了解如何指定where文档。