簡體   English   中英

在數組中,從每個 object 中的數組中刪除該項目出現的項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM