更新 findOne()/find()/findById() 返回的文档 - mongoose
Posted
技术标签:
【中文标题】更新 findOne()/find()/findById() 返回的文档 - mongoose【英文标题】:Update a document returned by findOne()/find()/findById() - mongoose 【发布时间】:2020-05-13 17:39:48 【问题描述】:我想知道是否有任何方法可以更改 mongoose find()
、findOne()
和 findById()
方法返回的文档对象的可用字段的值,并使用应用于数据库的更改来更新它们。下面的代码 sn-p 是我期望完成我想要的工作:
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);
);
【问题讨论】:
updateOne
【参考方案1】:
您编写的代码 sn-p 可以正常工作,但如果您只需要更新找到的文档:
User.findOneAndUpdate( email , email: 'sample@test.com' )
.then((err, user) =>
//
More on the Docs
【讨论】:
谢谢!我认为使用 findOneAndUpdate() 更方便。以上是关于更新 findOne()/find()/findById() 返回的文档 - mongoose的主要内容,如果未能解决你的问题,请参考以下文章
我正在使用 findOne 然后更新我得到的一个文档,但我想使用 find 以便我可以找到所有文档,然后将它们全部更新
TypeORM 在使用 .find()/.findOne() 时返回 undefined
节点,猫鼬“findOne”在另一个集合的“find”内的一个集合上