mongoose create返回__v

时间:2017-11-20 07:19:49

标签: node.js mongodb mongoose mongoose-schema

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

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

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

但是当我使用create方法

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

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

我也试过这个方法,在这样的架构上使用select:false

__v: {
  type: Number,
  select: false
}

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您也可以在创建文件文档后使用普通的js:

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