node.js - Mongoose 保存方法多次保存同一个文档

标签 node.js mongoose

您好,我在 Angular UI 上有一个输入字段日期选择器。我从字段中选择日期并更新开始日期,直到它正常工作。但如果我再次选择日期,它会复制文档而不是更新它。

工作代码:

router.post('/request/waiting/:startingDate', (req, res) => {
  const waiting = new WaitingRequest({
    startingDate: req.params.startingDate,
    requestID: req.body.requestID,
    contactInformation: req.body.contactInformation,
    orderInformation: req.body.orderInformation,
    requestInformation: req.body.requestInformation,
    installations: req.body.installations
  });
  waiting.save().then(result => {
    return res.status(201).json({
      message: 'Updated and Saved /waiting',
      result: result
    });
  });
});

到目前为止我已经尝试过但它返回 null:

router.post('/request/waiting/:startingDate', (req, res) => {
  WaitingRequest.findOneAndUpdate({
    requestID: req.body.requestID
  }, {
    startingDate: req.params.startingDate
  }).then(result => {
    console.log(result)
    if (result) {
      return res.status(201).json({
        message: 'Updated and saved',
        result: result
      });
    } else {
      return res.status(404).json({
        message: "404 Request Not Found"
      })
    }
  })
});

最佳答案

使用 UpdateOne() Mongoose 方法更新您的数据,

router.post('/request/waiting/:startingDate', (req, res) => {
    let query = { requestID: req.body.requestID }
    let update = { $set: { startingDate: new Date(req.params.startingDate) } }
    WaitingRequest.updateOne(query, update,(error,result)=>{
        if(error) return res.status(404).json({ message: "404 Request Not Found" })
        return res.status(201).json({
            message: 'Updated and saved',
            result: result
        });
    })
});

关于node.js - Mongoose 保存方法多次保存同一个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56596180/

相关文章:

node.js - 使用nodejs加入mongodb

javascript - 更新 MongoDB 数组中的多个值

node.js - 序列化然后反序列化 mongoose.Model 实例

javascript - Mongoose 保存子文档数组

node.js - nodejs setMaxListeners 避免内存泄漏检测

javascript - 如何在node.js中导出http.request中的 block

node.js - 在数据库中插入数据时的“null”值

node.js - setTimeout 在长时间运行的函数中引入延迟

node.js - 无法连接到 mongodb

javascript - 如何从nodejs、mongoose mongodb集合中查找返回