MongoDB Update()方法如何工作?

时间:2014-10-23 18:20:59

标签: mongodb nosql

考虑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 mongodbduplication of documents的情况感到困惑。

{ "_id" : ObjectId("544946347db27ca99e20a95f"), "title" : "New MongoDB Tutorial" }
{ "_id" : ObjectId("544946357db27ca99e20a960"), "title" : "MongoDB Overview" }
{ "_id" : ObjectId("544946377db27ca99e20a961"), "title" : "MongoDB Overview" }

1 个答案:

答案 0 :(得分:2)

当多个文档符合update条件时,除非使用multi选项,否则只会更新第一个匹配文档:

db.mycol.update(
  {'title': 'MongoDB Overview'},
  {$set: {'title': 'New MongoDB Tutorial'}},
  {multi: true})