【问题标题】:mongodb remove does not return booleanmongodb remove 不返回布尔值
【发布时间】:2012-09-18 14:17:06
【问题描述】:

我玩 mongodb 已经有一段时间了。我不明白当我尝试删除不存在的值或键时它不会给我一个错误。

        $host = '10.311.33.2';
        $user = 'admin'; $password = 'admin';
        tmpHost ="mongodb://$user:$password@$host";
        $m = new Mongo("$tmpHost");
        $db = $m->selectDB("common");
        $collection = new MongoCollection($db,"list");
        $result = array('name'=>'ali');
        $collection->insert($result);
        if($collection->remove($result)){
        echo "Remove";}
        else{
         echo "Not removed";}
        // Should display Not removed, since its not existing. but it displays Remove :S
        if($collection->remove($result)){
        echo "Remove";}
        else{
         echo "Not removed";}

这样的db怎么用,

【问题讨论】:

    标签: php mongodb mongomapper database


    【解决方案1】:

    您正在调用 MongoCollection::remove,但选项中没有安全标志(您正在调用它而没有任何选项)。这意味着该命令以“即发即弃”的方式运行。它被发送到数据库,程序继续执行,无需等待回复。

    当你这样称呼它时:

    $collection->remove($result, array("safe" => true))
    

    返回值将是一个数组,其中包含有关查询如何工作的信息。该数组的字段“n”包含受影响对象的数量。当 remove 命令什么都不做时,这应该是 0。

    顺便说一句:我之前使用过的大多数数据库将不影响任何内容的删除查询视为错误。

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 2013-08-18
      • 2011-12-14
      • 2020-07-29
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多