我有一个深层嵌套的文档结构,如下所示:
我有_id 1-请指导如何更新显示的字段(注意:它是基于_id的任何子项) 2-如果该文档需要在n级更新(例如childsOfLevel15),该怎么办? 3-有没有更好的方法来设计以上内容(我尝试过使用多个集合,但是使用$ lookup聚合会导致更多的复杂性)。
{
_id : "xxxxxxxxxxx25",
fieldAtlevel1 : "field value at 1 for document 1",
childsOfLevel1: [
{
_id: "xxxxxxxxxx500",
fieldsAtlevel2 : "field value at 2",
childsOfLevel2 : [
{
_id : "xxxxxxxxxx2500",
fieldsAtLevel3 : "field value at 3"
childsOfLevel3 : [
{
_id : "xxxxxxxxxxx25001",
field1AtLevel4 : "value 1",
field2AtLevel4 : "value 2",
field3AtLevel4 : "value 3",
field4AtLevel4 : "value 4",
},
{
_id : "xxxxxxxxxxx25002",
field1AtLevel4 : "value 1",
field2AtLevel4 : "value 2",
field3AtLevel4 : "value 3",
field4AtLevel4 : "value 4",
}, {}, {}, {} ...
]
}, {}, {}, {} ....
]
}, {}, {}, {} ....
]
},
{
_id : "xxxxxxxxxxx26",
fieldAtlevel1 : "field value at 1 for document 2",
childsOfLevel1: [
{
_id: "xxxxxxxxxx700",
fieldsAtlevel2 : "field value at 2",
childsOfLevel2 : [
{
_id : "xxxxxxxxxx3500",
fieldsAtLevel3 : "field value at 3"
childsOfLevel3 : [
{
_id : "xxxxxxxxxxx55001",
field1AtLevel4 : "value 1",
field2AtLevel4 : "value 2",
field3AtLevel4 : "value 3",
field4AtLevel4 : "value 4",
},
{
_id : "xxxxxxxxxxx55002",
field1AtLevel4 : "value 1",
field2AtLevel4 : "value 2",
field3AtLevel4 : "value 3",
field4AtLevel4 : "value 4",
}, {}, {}, {} ...
]
},
{
_id : "xxxxxxxxxx3501",
fieldsAtLevel3 : "field value at 3"
childsOfLevel3 : [
{
_id : "xxxxxxxxxxx55011",
field1AtLevel4 : "value 1",
field2AtLevel4 : "value 2",
field3AtLevel4 : "value 3",
field4AtLevel4 : "value 4",
},
{
_id : "xxxxxxxxxxx55012",
field1AtLevel4 : "value 1",
field2AtLevel4 : "value 2",
**field3AtLevel4 : "value 3", <---- To update this Only**
field4AtLevel4 : "value 4",
}, {}, {}, {} ...
]
}, {}, {}, {} ....
]
}, {}, {}, {} ....
]
}