MongoDB聚合运算符:$topN
warning:
这篇文章距离上次修改已过432天,其中的内容可能已经有所变动。
在MongoDB中,没有直接的$topN操作符,但是可以使用$sort和$limit操作符来实现获取前N个结果的需求。
以下是一个使用MongoDB聚合框架中的$sort和$limit操作符来模拟$topN的例子:
假设我们有一个名为sales的集合,我们想要获取每个item销售额前两名的记录。
db.sales.aggregate([
{
$group: {
_id: "$item", // 分组字段为item
totalSales: { $sum: "$amount" } // 计算每个item的总销售额
}
},
{
$sort: {
totalSales: -1 // 根据总销售额降序排序
}
},
{
$limit: 2 // 限制输出结果为前两名
}
]);这个查询首先使用$group操作符对数据进行分组并计算每个item的总销售额,然后使用$sort操作符按总销售额降序排序,最后使用$limit操作符限制输出结果只显示前两名。
评论已关闭