[英]Within an array, remove an item from an array within each object that item appears in
我的 mongodb 文檔(表)“Org_unit”如下所示:
{
"_id": ObjectId("0894f016e6e2e073c19e051")
"allowedusers": [
"admin",
"Fred",
"Bob",
"Layneh"
],
"name": "News management",
"divisions": [
{
"allowedusers": [
"admin",
"Larry",
"Bob",
"Harry",
"Fred"
],
"_id": ObjectId("60894f016e6e2e073c19e052"),
"name": "Finances",
"credentials": [
{
"_id": ObjectId("94f0944f016e6e2e2342cc"),
"name": "FNB - FA",
"userName": "example@email.com",
"password": "examplePassword!@#"
}
]
},
{
"allowedusers": [
"admin",
"Larry",
"Bob",
"Harry",
"Fred"
],
"_id": ObjectId("60894f016e6e2e073c19e052"),
"name": "Development",
"credentials": [
{
"_id": ObjectId("94f0944f016e6e2e2342cc"),
"name": "FNB - DEV",
"userName": "example@email.com",
"password": "examplePassword!@#"
}
]
}
],
"__v": 11
}
這是我在這里的第一篇文章,你好。 好的,所以我已經在這工作了幾天了,但我無法做到這一點。
我正在嘗試做的事情:
在“divisions”數組中,我想從他出現的每個 object“division”中的“allowedusers”數組中刪除“Fred”。
我試過的
我仍然很新,大約一個星期。我嘗試了很多次,但我得到的最接近的是:
Org_unit.updateMany({name: "News management"}, { $pull: {'divisions': {'allowedusers': "Fred"}}},{ multi: true })
^^ 如果他出現在“allowedusers”數組中,這將刪除整個部門
對此的任何指導都非常感謝提前謝謝你。
PS:(由於這是我發布的第一個問題,請告訴我將來如何改進我的問題!)
演示 - https://mongoplayground.net/p/kR_NmQNO52y
使用$[]
all 位置運算符
$[]
表示更新運算符應該修改指定數組字段中的所有元素。
db.collection.update({
name: "News management"
},
{
$pull: {
"divisions.$[].allowedusers": "Fred"
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.