2013-02-17 68 views
2

問候所有,貓鼬更新嵌入文檔不起作用

我定義了一個深深嵌入貓鼬模型「人」,其中包含字段,「聯繫人」和「聯繫人」有「地址」的這個人是一個數組工作,家庭,送貨等地址。

當我想更新一個地址,並使用模型的「保存」功能時,更改沒有反映在數據庫中。

  console.log(person.Contact.Address[i].City = 'Chicago'); 
      person.save(function (err) { 
       if (!err) { 
        console.log(person.Contact.Address[i].City); 

console.log指示字段City已更新爲新值,但mongodb的值保持不變。

你能幫我解決這個問題嗎?

謝謝!不過

person.markModified('Contact.Address'); 
person.save() 

不知道,當我需要使用markModified,因爲在大多數其他情況下的變化反映在MongoDB中不使用它: 加里

回答

5

的問題是使用markModified解決。

+0

我認爲這與混合數據類型有關 – franzlorenzon 2013-02-26 11:12:11

+0

您的模式中任何一個'type'爲'Mixed',{},Array,[]'的字段在其內容爲「時」需要使用'markModified'改變。否則你不需要它。 – JohnnyHK 2013-02-26 12:59:37

+0

僅供參考,'markModified'只會在同一個請求中工作一次。如果您嘗試將其重複用於相同的請求,則可能會導致重複的輸入錯誤。 – BlueSword 2016-10-20 18:38:46