mongoose findByIdAndUpdate更新对象并将其他对象推送到现有字段

时间:2018-06-16 05:53:16

标签: javascript node.js mongodb express mongoose

您好我想使用findByIdAndUpdate更新我的数据库中的文档只执行最少的调用,但是必须将某些值推送到数组上并进行其他更新。

我确信必须有一种简单的方法将其转换为一条路线,而不是使用两条

router.put('/notes/:id', (req, res) => {
  Player.findByIdAndUpdate({
      _id: req.params.id
    }, {
      $push: {
        notes: req.body.notes
      }
    }, {
      new: true
    })
    .then(player => res.status(200).json(player))
    .catch(err => res.status(400).json({
      'err': 'updating went wrong'
    }))
})
router.put('/:id', (req, res) => {
  let updates = {};
  if (req.body.first) {
    updates.first = req.body.first;
  }
  if (req.body.last) {
    updates.last = req.body.last;
  }
  if (req.body.school) {
    updates.school = req.body.school;
  }
  if (req.body.rank) {
    updates.rank = req.body.rank;
  }
  Player.findByIdAndUpdate({
      _id: req.params.id
    }, updates, {
      new: true
    })
    .then(player => res.status(200).json(player))
    .catch(err => res.status(400).json({
      'err': 'updating went wrong'
    }))
})

0 个答案:

没有答案