Mongo更新查询如下
db.personnel.update({"organization._id":'o4C8aSHbEBSaAuKog'},{$set:{name:'ghostsads'}}, {multi:true})
,显示为
WriteResult({“nMatched”:17,“nUpserted”:0,“nModified”:16})
如何使用相同的查询找到更新的文档
答案 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);
})
}