在Node.js中使用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....
有人做到过吗?我在文档中找不到它。
从说明书,该options参数需要一个"fields"关键的它,因为还有其他的细节,比如"upsert"和"new"地方适用。您 还 需要以下"new"选项:
options
"fields"
"upsert"
"new"
User.findOneAndUpdate( { "_id": "132324" }, { "$set": { "hair_color": "yellow" } }, { "fields": { "first_name":1, "last_name": 1 }, "new": true } ).exec(...)
您也可以使用 .select()
.select()
User.select({ "first_name": 1, "last_name": 1 }).findOneAndUpdate( { "_id": "132324" }, { "$set": { "hair_color": "yellow" } }, { "new": true } ).exec(...)
请注意,没有"new": true返回的文档处于处理更新修改 之前 的状态。有时候这就是您的意思,但是大多数时候您确实想要修改后的文档。
"new": true