Javascript 我是否可以编辑MongoDB对象并将其前置';以前的值是多少?

Javascript 我是否可以编辑MongoDB对象并将其前置';以前的值是多少?,javascript,mongodb,Javascript,Mongodb,假设我有一个模型,其中有一个名为draftFields的字段。它是一个对象(但可以是数组) 我将创建一个PUT请求,将数据添加到draftFields。我的问题是:我可以将数据添加到draftFields并保留以前的值吗 假设我已将第一个数据添加到draftFields。例如: draftFields = { someRandomValue: 'hi' } 在那之后,我将发出另一个PUT请求,它应该是这样的: draftFields = { someRandomValue: "

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

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

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

draftFields = {
  someRandomValue: 'hi'
}
在那之后,我将发出另一个
PUT
请求,它应该是这样的:

draftFields = {
  someRandomValue: "hi",
  anotherRandomValue: "hey"
}
我该怎么做?每次我更新我的
draftFields
obj时,它都会删除以前的值。我必须在前端状态下保存它才能保存以前的值。是否有任何变通方法或方法来保留后端的值

这是我的代码:

  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。

我可以使用
$push
方法,从一个对象更改为一个数组


我搜索失败,很抱歉。

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


很抱歉,我搜索失败。

您可以使用聚合更新-在此过程中,可以将以前的值设置为另一个字段,并将当前值更新为新值。请参阅。您可以使用聚合更新-其中可以将以前的值设置为另一个字段,并且可以将当前值更新为新值。看见