这个问题已经在这里有答案 :
我使用MongoDB中的子文件。
与子文档的一个水平,我可以更新文件
Parent.findOneAndUpdate({ _id: parentId, 'children._id': childId }, {
$set: {
'children.$.name': name
}
}, (err, doc) => {
...
});
但我必须做同样的子文档,即另一个层面的问题
Parent.findOneAndUpdate({ _id: parentId, 'children._id': childId, 'children.grandchildren._id': grandchildId }, {
$set: {
'children.$.grandchildren.$.name': name
}
}, (err, doc) => {
...
});
是位置运算符( $
)只限于1级子文档?