我的收藏(称为“工人”):
"_id" : "500"
"type" : "Manager",
"employees" : [{
"name" : "bob"
"id" : 101
},{
"name" : "phil"
"id" : 102
}]
目标:对于每个类型的 _id:Manager 并且包含“id”为 102 的子文档:将 102 替换为 202。
期望的最终结果:
"_id" : "500"
"type" : "Manager",
"employees" : [{
"name" : "bob"
"id" : 101
},{
"name" : "phil"
"id" : 202
}]
我试过了:
db.workers.update({type:'Manager','employees.id':'102'},{$set:{'employees.id':'202'}},{multi:true})
然后我做了以下两件事来验证:
db.workers.find({type: "Manager", 'employees.id': 102}).count()
我得到 9 的结果。
我也试过这个来验证:
db.workers.find({$and: [{type: "Manager"},{"employees.id":60}]}).count()
这返回 0。
在这一点上我很困惑。我的更新错了吗?我的发现错了吗?两者都有吗?'9' 结果是错误的吗?“0”错了吗?