猫鼬创建返回 __v

Pac*_*iel 1 mongoose mongodb node.js mongoose-schema

我正在尝试使用 mongoose 制作一个 REST API,我想隐藏 __v 属性,并且通过执行以下操作成功将其隐藏在 find 和 findById 上:

Contact.find({}, '-__v', function(error, list) { });

Contact.findById(req.params.id, '-__v', function(error, item) { });
Run Code Online (Sandbox Code Playgroud)

但是当我使用创建方法时

Contact.create(req.body, function(error, item) { });
Run Code Online (Sandbox Code Playgroud)

它返回给我添加了 __v 属性的项目。

我还尝试了在这样的模式上使用 select: false 的方法

__v: {
  type: Number,
  select: false
}
Run Code Online (Sandbox Code Playgroud)

此方法也执行相同的操作,它从 find 和 findById 中隐藏 __v 属性,但也不从 crate 方法返回的对象中隐藏它。

Rij*_*him 5

在架构中您可以按如下方式设置

 var Schema = new Schema({...}, { versionKey: false });
Run Code Online (Sandbox Code Playgroud)