MongoDB / Mongoose:MarkModified一个嵌套的对象

不幸的是,我没有logging,我可以testing这个,但我无法在任何地方find任何信息。

说我有这样的文件:

{ email: { type: 'Gmail', data: {//freeform data}, } } 

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

我是否像这样标记修改?

 doc.email.data = newData; doc.markModified('email.data'); doc.save(); 

或者我只是做markModified('email')和mongoose会解决其余的?

您需要提供修改的对象字段的完整path,所以它应该是:

 doc.markModified('email.data');