在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,则返回的文档处于状态before,更新的修改已被处理.有时候这就是你的意思,但大多数时候你真的想要修改过的文档.

Mongodb相关问答推荐

在MongoDB中使用explain()和查询时缺少winningPlan''''

MongoDB Aggregate-如何在条件中替换字符串中的变量

我可以在BSON中使用代理字段吗?

MongoDB 投影按数组中的字符串长度排序

Pymongo API TypeError: Unhashable dict

mongo.lock 文件有什么用?

为什么mongodb的文档中存储键名

Mongoid 有 Map/Reduce 吗?

Node + Mongoose:获取最后插入的 ID?

如何从 node.js 以编程方式执行 mongodump 命令?

带有部分字符串的mongoose文本搜索

在MongoDB中查询一个半​​径内的位置

如何在 Rails 中混合使用 mongodb 和传统数据库?

Flask:设置应用程序和请求特定的属性?

Mongo:匹配聚合查询中的日期似乎被忽略了

如何使用 mongoose 连接到 mongoDB Atlas

如何在mongoose的嵌套填充中 Select 特定字段

MongoError:Can't extract geo keys from object

我可以使用字符串作为 mongodb 文档的 ID 类型吗?

用于 MongoDB 的 Node.js 模块