首页 > 解决方案 > 如何仅更新 MongoDB 文档中的一个字段

问题描述

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

{
_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}
        }
    }

标签: mongodb

解决方案


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

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

编辑,添加示例:

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

推荐阅读