Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mongoose save method saves multiple times same document

Hi I have one input field date selector on angular UI. I select the date from field and update the starting Date and till there it works correctly. but If I select the date again it duplicates the document instead of updating it.

working code:

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
    });
  });
});

what I have tried so far but it returns 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"
      })
    }
  })
});
like image 561
Muhammad Ali Avatar asked Apr 08 '26 12:04

Muhammad Ali


1 Answers

Use the UpdateOne() mongoose method to update your data,

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
        });
    })
});
like image 94
Nikhil Savaliya Avatar answered Apr 11 '26 02:04

Nikhil Savaliya



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!