从半任意结构中检索具有匹配名称的所有元素

时间:2017-09-04 14:00:28

标签: mongodb mongodb-query aggregation-framework

我会先说我对MongoDB没有经验,所以我甚至不知道从哪里开始。

以下是一些示例数据。

{
   "_id":"59ae56c899620ff94e9baab7",
   "latitude":45.616012,
   "longitude":148.351045,
   "group_a":[
      "culpa",
      {
         "pupils":[
            {
               "id":0,
               "a":{
                  "name":"John Bobbard"
               }
            },
            {
               "id":1,
               "name":"Eva Smith"
            },
            {
               "seniors":[
                  {
                     "id":0,
                     "name":"Trina Bradley"
                  },
                  {
                     "id":1,
                     "b":{
                        "name":"Paul Graham"
                     }
                  },
                  {
                     "id":2,
                     "c":{
                        "name":"Deirdre Hubbard"
                     }
                  }
               ]
            }
         ]
      }
   ],
   "greeting":"Hello, Janice Atkinson! You have 10 unread messages.",
   "favoriteFruit":"banana"
}

我想要的输出包含_id, latitude, longitude,所有name字段(即John Bobbard, Eva Smith, Trina Bradley, Paul Graham, Deirdre Hubbard)和greeting, favoriteFruit的名称和值。问题在于,我无法分析name中总共会有多少group_a个字段,或者每个“深度”级别会有多少name个字段在group_a,它们可以半任意放置。我可能有办法知道group_a中有多少“次级”,但不一定。

我最好的猜测是我误读了find上的文档,或者我需要单独进行排序聚合查询以从name中提取所有group,然后其余部分加上find的产品。

我已经搜索过类似的问题,但到目前为止我所看到的并没有解决我的问题中存在的结构差异。

0 个答案:

没有答案