3
这里子句是我收集的(工人)的子文档:的MongoDB:删除与其中包含的文件和子文件
"type" : "Manager",
"employees" : [{
"name" : "bob"
"id" : 101
},{
"name" : "phil"
"id" : 102
},{
"name" : "bob"
"id" : 103
}]
第一:这是不是数组所以$ pullAll将无法正常工作或其它阵列命令。我想要做的就是:(1)在所有子文档中使用类型管理器搜索id 101的集合。 (2)如果101存在“经理”子文件,我想删除项目103.
我一直在这个问题上倾吐了两天的互联网,并无法弄清楚。
我已经试过这(和许多其他变化):
db.workers.update({"type":"Manager","employees.id":101},{$pull : {"employees.id" : {"id" : 103}}},false,true)
我做到这一点,那么我下面来验证这个组合没有 不复存在: db.workers.find({”键入“:”经理“,”items.id“:101,”items.id“:103})。count() 和我仍然获得8条记录 - 我的发现是不正确的? – lostinthebits 2013-04-05 16:43:38
@ user2249490该查询无效。你不能在同一个查询对象中使用'“items.id”'两次相同的键。 – JohnnyHK 2013-04-05 17:38:36
谢谢。我将如何编写一个查询来验证103和101不再存在于同一个员工密钥中? – lostinthebits 2013-04-05 17:50:42