Mongoose更新嵌入式文档不起作用

时间:2013-02-17 14:51:11

标签: node.js mongoose

全心全意,

我定义了一个深度嵌入的猫鼬模型“Person”,它包含一个字段“Contact”,而“Contact”有一个“Address”数组,用于该人的工作,家庭,交付等地址。

当我想更新地址并使用模型的“保存”功能时,更改未反映在数据库中。

            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的值保持不变。

你能帮我解决这个问题吗?

谢谢! 加里

1 个答案:

答案 0 :(得分:5)

使用markModified

解决了该问题
person.markModified('Contact.Address');
person.save()

我还不确定何时需要使用markModified,因为在大多数其他情况下,更改会反映在mongodb中而不使用它。