猫鼬创建 returns __v

mongoose create returns __v

我正在尝试用 mongoose 休息 api 我想隐藏 __v 属性 并且我通过这样做成功地将它隐藏在 find 和 findById 上:

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

Contact.findById(req.params.id, '-__v', function(error, item) { });

但是当我使用创建方法时

Contact.create(req.body, function(error, item) { });

它 returns 我添加了 __v 属性 的项目。

我还使用 select 尝试了此方法:在这样的架构上为 false

__v: {
  type: Number,
  select: false
}

这个方法也做了同样的事情,它从 find 和 findById 中隐藏了 __v 属性 但也没有从 crate 方法返回的对象中隐藏它。

在schema中你可以设置如下

 var Schema = new Schema({...}, { versionKey: false });

您也可以在创建文件文档后直接使用纯 js:

Contact.create(req.body, function(error, item) { 
    delete item.__v;
    //other things
});