[英]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.