例如,文档。
[
{
"username": "joy",
"size_info": [
{
"size": "M",
"width": 100,
"height": 102
},
{
"size": "M",
"width": 102,
"height": 104
},
{
"size": "S",
"width": 80,
"height": 82
}
]
}
]
我想对size_info.size
进行分组,并推送宽度和高度为的数组。
我正在尝试创建聚合查询。例如,对于上面给定的文档,它将如下所示:
[
{
"username": "joy",
"size_info": [
{
"size": "M",
"actual_size": [
{
"width": 100,
"height": 102
},
{
"width": 102,
"height": 104
}
]
},
{
"size": "S",
"actual_size": [
{
"width": 80,
"height": 82
}
]
}
]
}
]
有可能吗?谢谢你的帮助。
1条答案
按热度按时间jdgnovmf1#
$unwind
-将size_info
数组分解为多个文档。$group
-按username
和size_info.size
分组,将文档加入actual_size
数组。$group
-按username
分组,将文档加入size_info
数组。$project
-装饰输出文档。Sample Mongo Playground