2013-02-17 69 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