如何仅更新MongoDB文档中的一个字段

时间:2019-06-12 19:24:51

标签: mongodb

我有模块名称Items。我的模块如下所示:

{
_id: 4874874874848,
name: Item1
data: {name: 'Item name', id:1235}
}

现在我只需要更改数据数组中的内容(名称和ID)。 我一直在使用Items.FindOneAndUpdate(),但是我需要在该数据数组中插入新数据。我的问题是,如何添加新值,但只能在模块的数据数组中添加。 我的数据库应如下所示:

    {
        _id: 4874874874848,
        name: Item1
        data: {
        0{name: 'Item name', id:1235}
        1{name: 'Item name1', id:44545}
        2{name: 'Item name2', id:54545}
        }
    }

1 个答案:

答案 0 :(得分:0)

听起来像您需要$addToSet https://docs.mongodb.com/manual/reference/operator/update/addToSet/

请注意,这不会添加任何重复的值

编辑,添加示例:

'$addToSet': { data: {
    '$each': [
        {name: 'Item name1', id:44545},
        {name: 'Item name2', id:54545}
    ]
}}
相关问题