【发布时间】:2019-01-31 12:12:47
【问题描述】:
我的集合包含具有以下架构的文档。
架构
{
"categoryId": "1234",
"sellerId": "2323",
"productId": "121",
"rating": 1
},
{
"categoryId": "1235",
"sellerId": "2323",
"productId": "122",
"rating": -1
},
{
"categoryId": "1234",
"sellerId": "2323",
"productId": "123",
"rating": -1
},
{
"categoryId": "1235",
"sellerId": "2323",
"productId": "124",
"rating": 1
},
{
"categoryId": "1234",
"sellerId": "2323",
"productId": "125",
"rating": 1
},
{
"categoryId": "1234",
"sellerId": "2325",
"productId": "125",
"rating": 1
}
评级的值可以是1 或-1。我想查找按categoryId 和评分总和分组的所有文档。
示例结果:
{categoryId: 1234, positiveRatingCount: 2, negativeRatingCount: 1}
这是我到目前为止所做的:
ratingsCollection.aggregate(
{
$match: {sellerId: "2323" }
},
{
$group: {
_id: "$categoryId",
count: { $sum: "rating" }
}
}
);
我得到以下结果。我可以按类别进行分组,但无法计算出正面和负面评分的数量。
[
{
"_id": "1234",
"count": 3
},
{
"_id": "1235",
"count": 2
}
]
【问题讨论】:
标签: mongodb aggregation-framework