我可以在不替换现有数据的情况下在MongoDB文档中插入更多数据吗?更新功能替换数据

时间:2019-04-23 15:41:31

标签: node.js mongodb

这是现有记录

<br>

我希望这种情况发生,但是在使用{ "_id": { "$oid": "5cbd9009740fb12e08b5592f" }, "item": "ABC", "res_name": "XYZ", "price": "450", "category": "Main course" } 时,现有数据将被替换

update()

1 个答案:

答案 0 :(得分:0)

这就是更新的工作原理,当您指定一个字段时,它将替换它。

现在,如果您要将值“附加”到现有文档中,则必须 做两件事:

首先:更改模型架构,现在您的架构类别是一个字符串,它不能包含多个值。 您的新架构应具有以下属性:

  {
    _id: ObjectId,
    item: Array,
    res_nameL Array,
    price: Array,
    category: Array
    }

第二:似乎您正在更新单个文档,因此我建议使用findOneAndUpdate而不是update。现在您的新查询看起来像这样:

model.findOneAndUpdate(
      query,
      {
       $push: {
          category: 'new_category'
            ...
           price: 'new_price'
        }
      })

这应该给您想要的结果。