【问题标题】:Mongo: Removing elements from array inside an array [duplicate]Mongo:从数组中的数组中删除元素[重复]
【发布时间】:2014-07-04 11:35:03
【问题描述】:

我有以下 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"
            }
        ]
    }
]
}

现在,我想从 "link":"blah" 的“rooms.img”键中删除这些元素。像这样:

{
"_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”)中删除一个元素?请指教。

【问题讨论】:

  • $elemMatch 可能会有所帮助。

标签: list mongodb mongodb-query


【解决方案1】:

你应该使用投影算子Doc

另外看看我的旧帖:Here

【讨论】:

    猜你喜欢
    • 2013-01-26
    • 2011-07-03
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    相关资源
    最近更新 更多