我正在尝试使用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方法返回的对象中。
答案 0 :(得分:2)
在架构中,您可以按如下方式设置
var Schema = new Schema({...}, { versionKey: false });
答案 1 :(得分:1)
您也可以在创建文件文档后使用普通的js:
Contact.create(req.body, function(error, item) {
delete item.__v;
//other things
});