Mongo:从数组中的数组中删除元素

时间:2014-07-04 11:35:04

标签: list mongodb mongodb-query

我有以下mongo结构:

{
"_id": 123,
"rooms": [
    {
        "room_code": 456,
        "img": [
            {
                "link": "blah",
                "title": "Title"
            },
            {
                "link": "blah2",
                "title": "Title2"
            }
        ]
    },
    {
        "room_code": 789,
        "img": [
            {
                "link": "blah",
                "title": "Title"
            },
            {
                "link": "blah3",
                "title": "Title3"
            }
        ]
    }
]
}

现在,我想从" rooms.img"中删除这些元素。密钥"link":"blah"。像这样:

{
"_id": 123,
"rooms": [
    {
        "room_code": 456,
        "img": [
            {
                "link": "blah2",
                "title": "Title2"
            }
        ]
    },
    {
        "room_code": 789,
        "img": [
            {
                "link": "blah3",
                "title": "Title3"
            }
        ]
    }
]
}

我尝试过使用,

db.collections.update({"_id":123},{$pull: { 'rooms':{'img': { 'l': 'blah' } }}})

db.collections.update({"_id":123},{$pull: { 'room_info.img': { 'l': 'blah' } }})

但他们都没有工作。如何从列表中删除元素(" img"),这是另一个列表的一部分(" rooms")?请指教。

1 个答案:

答案 0 :(得分:0)

您应该使用投影操作符Doc

另外,请查看我的旧帖子:Here