Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongoose创建退货_Node.js_Mongodb_Mongoose_Mongoose Schema - Fatal编程技术网

Node.js mongoose创建退货

Node.js mongoose创建退货,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,我正试图用mongoose制作一个rest 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

我正试图用mongoose制作一个rest 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属性,但对clarate方法返回的对象也不隐藏它。

在模式中,您可以如下设置它

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

在模式中,您可以如下设置它

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

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

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

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

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

但我知道不建议这样做,所以我想保留该属性,但在返回endpointshope上的数据时将其隐藏。这可以帮助您。:)但我知道不建议这样做,所以我想保留该属性,但在返回endpointshope上的数据时将其隐藏。这可以帮助您。:)现在这是一个很好的方法,我对mongo tho很陌生,但是对于一些eason,我无法删除该属性,但是如果我克隆对象并将其从克隆元素中删除,我可以这样做,非常感谢您的帮助answer@PacuraruDaniel我认为您不能删除它,因为
item
是一个“特殊”的Mongoose文档对象。例如,可以使用
item=item.toObject()
将其转换为普通对象。或者像你一样克隆它。@MikaS是的,我得出了与你相同的结论,那就是它是一个特殊的对象,它就像一个模式对象,因为我可以调用我在联系人模式上实现的方法,无论如何,非常感谢你的帮助。现在这是一个不错的方法,我对mongo tho很陌生,但对于某些eason,我无法删除该属性,但如果我克隆该对象并将其从克隆的元素中删除,我可以删除该属性,非常感谢您的帮助answer@PacuraruDaniel我认为您不能删除它,因为
item
是一个“特殊”的Mongoose文档对象。例如,可以使用
item=item.toObject()
将其转换为普通对象。或者像你一样克隆它。@MikaS是的,我得出了与你相同的结论,那就是它是一个特殊的对象,它就像一个模式对象,因为我可以调用我在联系人模式上实现的方法,无论如何,非常感谢你的帮助