考虑mycol collectioin有以下数据。
{ "_id" : ObjectId("544946347db27ca99e20a95f"), "title" : "MongoDB Overview" }
{ "_id" : ObjectId("544946357db27ca99e20a960"), "title" : "MongoDB Overview" }
{ "_id" : ObjectId("544946377db27ca99e20a961"), "title" : "MongoDB Overview" }
让我们更新文件。
>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}})
导致文档更新。
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.mycol.find();
现在,当我尝试在collection
中找到文档时,我看到第一个文档正在更新。我对updation works in mongodb
时duplication of documents
的情况感到困惑。
{ "_id" : ObjectId("544946347db27ca99e20a95f"), "title" : "New MongoDB Tutorial" }
{ "_id" : ObjectId("544946357db27ca99e20a960"), "title" : "MongoDB Overview" }
{ "_id" : ObjectId("544946377db27ca99e20a961"), "title" : "MongoDB Overview" }
答案 0 :(得分:2)
当多个文档符合update
条件时,除非使用multi
选项,否则只会更新第一个匹配文档:
db.mycol.update(
{'title': 'MongoDB Overview'},
{$set: {'title': 'New MongoDB Tutorial'}},
{multi: true})