我要返回一个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 })
可能是什么问题?
啊..我的对象是一个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) { ... });