[英]$pull array embedded docs MongoDB
這是我的問題,我需要將特定的_id費用引用刪除到數組member.charges中,並將其從特定的member.id刪除到嵌入式文檔中。
(我希望我的問題很清楚)。
我嘗試這個。
db.branches.update(
{'members._id':ObjectId("565dc20d338b60720c25e8d0"),
'members.charges': ObjectId("565dc20d338b60720c25e8d1")
},
{
$pull:{'members.charges': ObjectId("565dc20d338b60720c25e8d1") }
}
);
(分支,是集合的名稱)。
但是mongoDB說:
無法使用零件(members.charges的成員)遍歷元素。
我的收藏結構是:
{
"_id" : ObjectId("565dc1cb338b60720c25e8ce"),
"phone" : "33 2132 1321",
"address" : "whereever",
"name" : "Gym2",
"account_id" : ObjectId("565dc1ad338b60720c25e8cc"),
"visits" : [],
"members" : [
{
"name" : "Test User",
"package" : ObjectId("565dc1f9338b60720c25e8cf"),
"address" : "Sur 113 A No 429",
"phone" : "32 1321 3232",
"contactPhone" : "32 3213 1231",
"email" : "test@gmail.com",
"pendingCharges" : true,
"_id" : ObjectId("565dc20d338b60720c25e8d0"),
"created" : ISODate("2015-12-01T15:51:41.187Z"),
"charges" : [
ObjectId("565dc20d338b60720c25e8d1")
],
"active" : true
},
{
"name" : "Test user 2",
"package" : ObjectId("565dc1f9338b60720c25e8cf"),
"address" : "whereever",
"phone" : "32 1321 3232",
"contactPhone" : "32 3213 1231",
"email" : "uodsaanduco@gmail.com",
"pendingCharges" : true,
"_id" : ObjectId("565dc22b338b60720c25e8d2"),
"created" : ISODate("2015-12-01T15:52:11.581Z"),
"charges" : [
ObjectId("565dc22b338b60720c25e8d3")
],
"active" : true
}
],
"packages" : [
ObjectId("565dc1f9338b60720c25e8cf")
]
}
您需要告知更新在拉動charges
元素時要查看哪個members
數組元素。 您可以使用位置$
運算符來完成此操作,該運算符表示查詢中匹配的members
數組元素的索引:
db.branches.update(
{'members._id':ObjectId("565dc20d338b60720c25e8d0"),
'members.charges': ObjectId("565dc20d338b60720c25e8d1")
},
{
$pull:{'members.$.charges': ObjectId("565dc20d338b60720c25e8d1") }
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.