首页 > 解决方案 > 我可以编辑 MongoDB 对象并取消它的先前值吗?

问题描述

假设我有一个模型,其字段名为draftFields. 它是一个对象(但它可以是一个数组)。

我将创建一个PUT将数据添加到draftFields. 我的问题是:我可以将数据添加到 draftFields 并保留以前的值吗?

假设我已将第一个数据添加到draftFields. 例如:

draftFields = {
  someRandomValue: 'hi'
}

之后我将提出另一个PUT请求,它应该如下所示:

draftFields = {
  someRandomValue: "hi",
  anotherRandomValue: "hey"
}

我怎样才能做到这一点?每次我更新我的draftFieldsobj 时,它都会删除以前的值。我必须将它保存在我的前端状态才能保存以前的值。是否有任何解决方法或方法来保留后端的值?

这是我的代码自动取款机:

  app.put('/api/save-draft/:id', function (req, res) {
    User.findOneAndUpdate(
      { _id: req.params.id },
      { $set: { draftFields: req.body.draftFields } },
      { new: true },
      (err, doc) => {
        if (err) {
          console.log('Something wrong when updating data!');
          res.status(400).send('Error');
        }
        res.status(200).send('All good!');
        console.log(doc);
      },
    );
  });

如果相关,我正在使用 Javascript(ReactJS) 和 NodeJS。

标签: javascriptmongodb

解决方案


我可以使用该$push方法并从对象更改为数组。

https://docs.mongodb.com/manual/reference/operator/update/push/

搜索失败,抱歉。


推荐阅读