在 Nodejs 中使用 Mongoose,您可以使用 find 返回一些字段。 例如。
User.findOne({_id:'132324'}, {first_name:1, last_name:1}).exec...
但我似乎无法弄清楚如何使用 findOneAndUpdate 返回某些字段。
User.findOneAndUpdate({_id:'132324'}, {$set : {..bla bla}}, {first_name:1, last_name:1}).exec....
以前有人实现过这个吗? 我在文档中找不到它。
最佳答案
来自manual , options
参数需要一个 "fields"
键,因为还有其他详细信息,例如 "upsert"
和 "new"
适用于此。在您的情况下,您还需要“new”
选项:
User.findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{
"fields": { "first_name":1, "last_name": 1 },
"new": true
}
).exec(...)
或者您可以使用 .select()
User.select({ "first_name": 1, "last_name": 1 }).findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{ "new": true }
).exec(...)
请注意,如果没有"new": true
,则返回的文档处于处理更新修改之前的状态。有时这就是您的意思,但大多数时候您确实想要修改后的文档。
关于node.js - Mongoose 选择要从 findOneAndUpdate 返回的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45975549/