MongoDB/Mongoose:MarkModified一个嵌套对象

JVG*_*JVG 7 javascript mongoose mongodb node.js

不幸的是我没有记录我可以测试这个,但我无法在任何地方找到任何相关信息.

说我有这样的文件:

{
  email:  {
       type: 'Gmail',
       data: {//freeform data},
    }
}
Run Code Online (Sandbox Code Playgroud)

我想更新doc.email.data.我需要使用markModified(),否则数据将无法正确保存.

我这样修改了吗?

doc.email.data = newData;
doc.markModified('email.data');
doc.save();
Run Code Online (Sandbox Code Playgroud)

或者我只是这样做,markModified('email')而Mongoose会解决剩下的问题吗?

Joh*_*yHK 11

您需要提供修改后的对象字段的完整路径,因此它应该是:

doc.markModified('email.data');
Run Code Online (Sandbox Code Playgroud)