MongoDB通过对象的索引推送到对象的数组

时间:2020-07-18 13:15:43

标签: javascript python mongodb mongodb-query

我有一个带有shelves数组字段的用户文档,其中是带有shelf_idbooks数组的对象。 给定books后,如何添加到shelf_id数组中? (最好使用Python,但语言无关紧要)

我的文档结构如下:

{
    "firebase_id": "(id)",
    "shelves": [{
        "name": "To read",
        "books": ["(book id)"],
        "shelf_id": "(shelf id)"
    }]
}
db.users.update({"firebase_id": "(id)"}, {"$push": {}})

感谢您的帮助!预先感谢!

1 个答案:

答案 0 :(得分:1)

您要使用$arrayFilters

db.users.updateMany(
    {'firebase_id': '(id)'},
    {
        $push: {
            'shelves.$[elem].books': newBook,
        }
    },
    {
        arrayFilters: [
            {'elem.shelf_id': shelfId}
        ]
    });