我使用Mongoose,并且在将JSON响应发送到客户端之前,我想从我的Mongoose实例中删除_id
属性。下划线的Mongoose对象克隆和删除属性不起作用?
例子:
var ui = _.clone(userInvite);
delete ui["_id"];
console.log(JSON.stringify(ui)); //still has "_id" property, why?
以前没有工作。
但是,如果我这样做:
var ui = JSON.parse(JSON.stringify(userInvite)); //poor man's clone
delete ui["_id"];
console.log(JSON.stringify(ui)); //"_id" is gone! it works!
我不明白为什么叫使用下划线不起作用克隆对象delete
,但如果我做哈克JSON.string/JSON.parse,有用。
对此行为有何想法?
大概是猫鼬曳你和实施'_id'作为的getter/setter而不是作为一个属性。尝试'Object.getOwnPropertyDescriptor(userInvite,“_id”)。get' – Raynos 2012-02-23 20:24:54
修改任何克隆猫鼬对象的属性也是不可能的。 – Hill 2016-04-22 12:03:04