我会先说我对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
的产品。
我已经搜索过类似的问题,但到目前为止我所看到的并没有解决我的问题中存在的结构差异。