猿问

我可以编辑 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。


慕田峪7331174
浏览 82回答 1
1回答

慕后森

可以使用该$push方法并从对象更改为数组。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答