node.js - Mongoose 选择要从 findOneAndUpdate 返回的字段

标签 node.js mongodb mongoose

在 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....

以前有人实现过这个吗? 我在文档中找不到它。

最佳答案

来自manualoptions 参数需要一个 "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/

相关文章:

node.js - 如何找出 express 应用程序正在运行的当前 NODE_ENV?

node.js - Joi 验证检查数据库中是否存在记录

javascript - Angular 的 Http 请求服务抛出错误

c# - Mongodb最好的查询方式

java - 使用 Java 从 MongoDB 获取随机文档/记录

node.js - Mongoose 中的数组匹配查询不起作用

node.js - 将事件插入谷歌日历nodejs

php - 哪个数据库架构师最适合网站/页面统计计数

javascript - javascript中for循环中的匿名回调函数

javascript - 填充 Mongoose 后查找