首页 > 解决方案 > Mongoose 更新函数给出 null 而不是实际更新信息

问题描述

我的 .findOneAndUpdate 方法将用户返回为 null 并且最终不会更新信息。一切似乎都井井有条,我没有任何错误。

编辑:我取得了进展,我终于能够更新 GroupID,但将其设置为 null。而不是传入的字符串。

router.put("/update", (req, res) => {
  Users.findOneAndUpdate(
    { _id: req.body.id },
    {
      $set: { GroupID: req.body.GroupID }
    },
    { new: true },
    (err, user) => {
      if (err) res.send(err);
      else res.send("Account GroupID Updated" + user);
    }
  );
});

标签: javascriptnode.jsexpressmongoose

解决方案


req.body.id您必须按如下方式转换为 objectId:

var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId(req.body.id);

 Users.findOneAndUpdate(
    { _id: id }

推荐阅读