让我们说我使用$ match和$ group进行汇总请求
db.getCollection('tickets').aggregate({
$match: {
test: false
}
}, {
$group: {
_id: "$node_id",
moyenneEncaisse: {
$avg: "$amount_net"
},
sumEncaisse: {
$sum: "$amount_net"
},
maxValue: {
$max: "$amount_net"
}
}
}, {
$sort: {
"_id.maxValue":-1
}
})
我的问题是:
1)我无法让$ sort工作。无论我要sort:1还是sort:-1,它都会输出相同的随机结果。
2)我想使用size()并获取输出的大小。这里需要计算他找到了多少个小组。但是在这里,我将无法正常工作。也尝试使用.count(),但没有成功。 ->在这里,我不要希望得到一个包含每个组大小的组列表。不,我希望只得到一个数字,该数字将成为组的总数。 例如:{{A:1},{A:2},{A:3},{B:2}},如果我按字母分组,我希望得到的组数= 2,因为有一个组由3个字母A的元素和一组1个字母B的元素组成
排序和获取组数的最佳优化方法是什么?
最佳