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