MongoDB聚合:如何展开未知数目的嵌套数组?

jjjwad0x  于 2023-03-17  发布在  Go
关注(0)|答案(1)|浏览(112)

我有一个这样的系列:

{
   "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呢?

dpiehjr4

dpiehjr41#

据我所知,$unwind不支持递归展开。
我遇到过类似的问题,我有一个包含嵌套元素的文档,其中每个元素都有一个ID,并且每个元素可以有多个元素,每个元素都有自己的ID,等等......
我需要一份不同身份的名单。
我的问题与C#有关,我最终检索了最外层的文档,并在C#驱动程序中实现了一个函数,该函数递归地遍历检索到的文档,然后返回一个不同ID的扁平列表。

相关问题