mongodb - 集合更新实际上不会更新

时间:2013-10-08 19:36:33

标签: mongodb

我正在努力解决这个问题。

我正在尝试发布一个集合级别更新,它实质上用以下数字更新所有匹配的记录:

# I actually am using PHP driver but using the console has the same result
db.my_collection.update( {si: '647522529'}, {$set: {cl:'2'}} );

上面应该找到si ='647522529'的所有记录,然后更新cl ='2'。

问题是上面的命令没有给出任何类型的错误或警告所以它看起来像是正确执行了,但是当我在'cl'键上运行一个不同的命令时,它给出了混合结果(2/1) :

> db.runCommand( { distinct: 'my_collection', key: 'cl', query: { si: '647522529' } } )
{
        "values" : [
                "2",
                "1"
        ],
        "stats" : {
                "n" : 113,
                "nscanned" : 113,
                "nscannedObjects" : 113,
                "timems" : 1,
                "cursor" : "BtreeCursor si_1"
        },
        "ok" : 1
}

我做错了什么吗?我已经尝试重新编制数据库索引,但也没有任何影响。

任何帮助都会非常感谢!

2 个答案:

答案 0 :(得分:1)

默认情况下,mongo更新将更新单个文档。请参阅:http://docs.mongodb.org/manual/tutorial/modify-documents/

您必须提供可选:

{ multi: true }

答案 1 :(得分:0)

db.my_collection.update(Criteria,Update,multi:true)

这应该有效!

请参阅:http://docs.mongodb.org/manual/tutorial/modify-documents/