我想知道是否有任何方法可以更改猫鼬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) => {
//
}
有关文档的更多信息