【发布时间】:2020-01-13 14:33:36
【问题描述】:
我有一个类似这样的集合:
[
{
"_id":1,
"name":"breakfast",
"time":"10.00"
},
{
"_id":3,
"name":"lunch",
"time":"12.07"
},
{
"_id":2,
"name":"breakfast",
"time":"10.10"
},
{
"_id":4,
"name":"lunch",
"time":"12.45"
}
]
我想聚合成这样的东西:
{
"breakfast":[
{
"_id":1,
"name":"breakfast",
"time":"10.00"
},
{
"_id":2,
"name":"breakfast",
"time":"10.10"
}
],
"lunch":[
{
"_id":3,
"name":"lunch",
"time":"12.07"
},
{
"_id":4,
"name":"lunch",
"time":"12.45"
}
]
}
我只设法将它们分组,但我无法根据餐点将主餐更改为早餐或午餐。名称(组名)
$group: {
_id: { meal: '$meal.name' },
meals: { $push: '$meal' },
}
使用上面的代码,我设法产生了下面的输出。我唯一的挑战是将密钥meals 更改为早餐或午餐,如上文子组中所述。
{
"meals":[
{
"_id":1,
"name":"breakfast",
"time":"10.00"
},
{
"_id":2,
"name":"breakfast",
"time":"10.10"
}
],
"meals":[
{
"_id":3,
"name":"lunch",
"time":"12.07"
},
{
"_id":4,
"name":"lunch",
"time":"12.45"
}
]
}
【问题讨论】: