无法将属性添加到js对象

我正在返回一个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) { ... });