2014-10-23 4 views
2

Рассмотрите, что mycol collectioin имеет следующие данные.Как работает метод MongoDB Update()?

{ "_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" } 

ответ

1

Когда несколько документов соответствуют update критериям, только первый соответствующий документ обновляется, если не используется опция multi:

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