首页 > 解决方案 > 更新 findOne()/find()/findById() 返回的文档 - mongoose

问题描述

我想知道是否有任何方法可用于更改 mongoose 返回的文档对象的可用字段的值find()findOne()以及findById()方法并使用应用于数据库的更改来更新它们。下面的代码片段是我期望完成我想要的工作:

User.findOne({ email: email })
      .then(user => {
        if (user) {
            user.fieldToUpdate = "Updated value"; // Here I'm getting the field and updating it with the new value;
            user.save().then().catch(); // Here I'm updating the document to the database, expecting for a promise object
        } else {
          const error = new Error("No such user in the database.");
          error.httpStatusCode = 422;
          next(error);
        }
      })
      .catch(error => {
        next(error);
      });

标签: node.jsmongoose

解决方案


您编写的代码片段可以正常工作,但如果您只需要更新找到的文档:

User.findOneAndUpdate({ email }, { email: 'sample@test.com' })
  .then((err, user) => {
    //
  }

更多关于文档


推荐阅读