我有一个这样的系列:
{
"name": "item1",
"values": [<some array>],
"subitems": [
{
"name": "item2",
"values": [<some array>],
"subitems": [
{
"name": "item3",
"values": [<some array>],
"subitems": [
{
"name": "item4",
"values": [<some array>],
"subitems": [
{
"name": "item5",
"values": [<some array>],
"subitems": [
<...and so on...>
]
}
]
}
]
}
]
}
]
}
因此,基本上subitems
的“深度”是不确定的,每个subitems
数组可能包含任意数量的元素。
如果我们展开subitems
,mongo只展开item1
级别的subitems
元素,这是有意义的,但是,我需要它以递归的方式深入层次结构。
我们怎样才能解开所有嵌套的subitems
呢?
1条答案
按热度按时间dpiehjr41#
据我所知,
$unwind
不支持递归展开。我遇到过类似的问题,我有一个包含嵌套元素的文档,其中每个元素都有一个ID,并且每个元素可以有多个元素,每个元素都有自己的ID,等等......
我需要一份不同身份的名单。
我的问题与C#有关,我最终检索了最外层的文档,并在C#驱动程序中实现了一个函数,该函数递归地遍历检索到的文档,然后返回一个不同ID的扁平列表。