MongoDb Shell - 如何显示<document>结果哪一个更新?</document>

时间:2015-04-13 09:11:08

标签: mongodb

Mongo更新查询如下

db.personnel.update({"organization._id":'o4C8aSHbEBSaAuKog'},{$set:{name:'ghostsads'}}, {multi:true})

,显示为

  

WriteResult({“nMatched”:17,“nUpserted”:0,“nModified”:16})

如何使用相同的查询找到更新的文档

2 个答案:

答案 0 :(得分:3)

Mongo不会返回此信息。正如文档中所写,更新返回WriteResult

  

WriteResult对象包含与之匹配的文档数   查询条件,更新插入的文档数,以及   修改的文件数量

所以你只能看到

WriteResult({
  "nMatched" : 1,
  "nUpserted" : 0,
  "nModified" : 1
})

与您的查询匹配的文档数量,其中有多少文档已被插入,最后有多少文档已更新。在你的情况下16个。

如果您真的想看到它们,可以通过在更新前检查有多少文档没有name字段或名称字段不等于您的'ghostsads'字符串来手动执行此操作。 / p>

答案 1 :(得分:0)

我想分享一下,我尝试过这个技巧!它工作!。

var criteria_find = {"organization._id":'o4C8aSHbEBSaAuKog'};
var criteria_set = {"organization._id":'o4C8aSHbEBSaAuKog'},{$set:{name:'ghostsads'}};
var projection = {multi:true};

var check = db.personnel.find(criteria_find);

if(check){

check.forEach(function(els){

print('personnel_id was effected : ' + els._id);

db.personnel.update(criteria, projection);

})

}