更新由 findOne()/find()/findById() - 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);
});

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

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

有关文档的更多信息

最新更新