findByIdAndUpdate不适用于express,但适用于mongo工具

时间:2018-11-14 02:08:42

标签: node.js mongodb express mongoose

我是mongodb和express的初学者,现在我正在尝试更新一些数据。我不认为我的代码中有什么问题,当我打开调试时,下面的数据库操作将被打印出来,并且不会从catch中返回任何错误,因此毫无疑问,我认为以下更新将毫无故障地执行。甚至我直接从mongo客户端工具中使用以下更新语句进行测试,都可以正常工作。但是,如果我从express更新,它不会反映在实际数据库中。如果更新不成功,它将返回一些错误,但不会。有人可以给我一些建议吗?我真的不知道这里发生了什么,下面的数据库操作在mongo客户端工具中效果很好。从快递,它也不返回错误。所以,我来问这个。

猫鼬:people.findOneAndUpdate({_id:ObjectId(“ 5be6d1087594078eac687f19”)},{'$ push':{爱好:{'$ each':['TEST','SING','SWIM']}}} },{'$ push':{技能:['编程']},upsert:否,投影:{},returnOriginal:true})

router.post("/edit/:id", (req, res, next) => {
  var hobbies = req.body.hobbies.split(",");
  var skills = req.body.skills.split(",");

  Person.findByIdAndUpdate(
    req.params.id,
    // { $set: { name: req.body.name } }
    { $push: { hobbies: hobbies} },
    { $push: { skills: skills} }
  )
    .exec()
    .then(person=> {
      res.json(person);
    })
    .catch(err => {
      console.log("ERROR", err);
    });
});

0 个答案:

没有答案