簡體   English   中英

向現有屬性添加新屬性無效

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM