如何从 mongo 集合中的数组 属性 中删除元素

How to remove an element from an array property in mongo collection

我是 mongodb 的新手,需要一些有关查询的指导。

我有一个名为 groups 的集合,如下所示。

{

    "_id" : ObjectId("jkhjkhkjhkj"),
    "name" : "some_name",
    "members" : [ 
        "product:naxi", 
        "product:tina", 
        "product:natalia"
    ]

},

{

    "_id" : ObjectId("jhkjhkjhkjhk"),
    "name" : "some_other_name",
    "members" : [ 
        "product:naxi", 
        "product:albert", 
        "product:natalia"
    ]

},

{

    "_id" : ObjectId("678687hjbnbmnm"),
    "name" : "some_new_name",
    "members" : [ 
        "product:peter, 
        "product:sonya", 
        "product:tom"
    ]

}

我想删除 product:naxi 在组集合中任何项目的成员数组中出现的地方。

下面是最终结果的样子 -

{

    "_id" : ObjectId("jkhjkhkjhkj"),
    "name" : "some_name",
    "members" : [ 
        "product:tina", 
        "product:natalia"
    ]

},

{

    "_id" : ObjectId("jhkjhkjhkjhk"),
    "name" : "some_other_name",
    "members" : [ 
        "product:albert", 
        "product:natalia"
    ]

},

{

    "_id" : ObjectId("678687hjbnbmnm"),
    "name" : "some_new_name",
    "members" : [ 
        "product:peter", 
        "product:sonya", 
        "product:tom"
    ]

}

如何使用 pymongo 完成此操作。

$pull 应该可以解决问题:

db.groups.update(
    {},
    { $pull: { members: "product:naxi" } },
    { multi: true }
)