我正在返回一个Mongoose文档,并希望在我发送之前添加一些元数据。然而,我无法添加任何属性,我不知道为什么。我已经检查过它是可扩展的Object.isExtensible(doc),它是。
Item.findById(req.params.id).exec(function(err, doc) {
doc.blah = 'hello';
console.log(doc); // No trace of 'blah'. I can change/delete existing props however
})
可能有什么问题?
答案 0 :(得分:34)
啊..我的对象是一个不允许添加属性的Mongoose文档。解决方案是将返回的文档转换为普通对象或在查询中调用lean()。
Item.findById(req.params.id).exec(function(err, doc) {
var obj = doc.toObject();
...
});
Item.findById(req.params.id).lean().exec(function(err, doc) {
...
});