【发布时间】:2017-07-31 17:37:13
【问题描述】:
我有一个这样的产品集合,简化:
[
{
"_id": 1,
"ref": "product 1",
"variants": [
{
"ref": "variant 1.1",
"categories": ["category a"]
},
{
"ref": "variant 1.1",
"categories": ["category a","category b"]
}
]
},
{
"_id": 2,
"ref": "product 2",
"variants": [
{
"ref": "variant 2.1",
"categories": ["category c"]
},
{
"ref": "variant 2.1",
"categories": ["category a","category c"]
}
]
}
]
我想查询类别(不同的)及其包含产品的数量(不是变体)。
例如一些这样的结果:
[
"category a": 2,
"category b": 1,
"category c": 1
]
我尝试了一些聚合和展开的查询,但我无法弄清楚。感谢所有帮助!
这是我目前所拥有的:
[
{$match: ... }, // optional filtering
{$unwind: '$variants'},
{$unwind: '$variants.categories'},
]
但现在无法弄清楚如何按类别分组,以及该类别内所有产品(不是变体)的总计数。
【问题讨论】:
标签: mongodb aggregation-framework