[英]adding a new property to existing doesn't work
我试图将另一个属性添加到从猫鼬的findOne()
许诺返回的现有对象中。 在响应中,我得到的对象没有属性convertName
app.get('/getItem', (req, res) => {
var itemID = req.query.itemID;
Item.findOne({_id: itemID}).then(item => {
item.convertName = 'cm';
res.send(item);
}).catch( err => {
res.status(401).send();
});
})
我知道向现有对象添加另一个属性的方法与此类似,只需指定属性名称并为其设置一个值,所以我不知道为什么在这种情况下它不起作用。
希望您能解释并帮助我为什么它不起作用。
Mongoose有点复杂:默认情况下, MongooseDocument
是由查询返回的,而您尝试添加到此类文档的属性不会反映在其序列化值(响应中发送的值)上。
解决此问题的一种可能方法是使用lean()
方法启用lean选项。 引用文档 :
从启用了
lean
选项的查询返回的文档是纯javascript对象,而不是MongooseDocuments
。 他们没有应用保存方法,吸气剂/设置器或其他猫鼬魔法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.