php - mongodb remove 不返回 bool 值

标签 php mongodb mongomapper database

我玩 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怎么用,

最佳答案

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

当你这样调用它时:

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

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

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

关于php - mongodb remove 不返回 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478831/

相关文章:

php - MySQL/PHP 数组到 Javascript

json - 严格模式下的MongoDB日期格式

mongodb - 使用地理空间索引查询源和目的地 mongodb mongomapper

mongodb - 使用 mongomapper、sunspot/solr 或 sphinx 高级搜索 mongodb?

mongodb - FindAndUpdate 与 MongoDB 中的更新

PHP 使用数组结果完成MySQL查询并将结果添加到现有数组中

php - 确定两个名称是否彼此接近

javascript - AngularJS SlimPHP CRUD - $http.delete 不起作用 - XMLHttpRequest 无法加载

c# - 插入 C# MongoDB 中的嵌套数组

mongodb - 无法在 Windows 上部署 MongoDB 副本集?