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

Gar*_*ary 2 mongoose node.js

问候所有,

我定义了一个深度嵌入的猫鼬模型"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);
Run Code Online (Sandbox Code Playgroud)

console.log指示字段City已更新为新值,但mongodb的值保持不变.

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

谢谢!加里

Gar*_*ary 5

使用markModified以下方法解决了该问题:

person.markModified('Contact.Address');
person.save()
Run Code Online (Sandbox Code Playgroud)

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