首页 > 解决方案 > MongoDB 聚合:如何展开未知数量的嵌套数组?

问题描述

我有一个看起来像这样的集合:

{
   "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数组可能包含任意数量的元素。

如果我们 unwind subitems,mongo 只会subitems在 level 上展开元素item1,这是有道理的。但是,我需要它以递归方式深入层次结构。

我们怎样才能解开所有的嵌套subitems

标签: mongodbaggregation-framework

解决方案


推荐阅读