为了账号安全,请及时绑定邮箱和手机立即绑定

mongodb分组查询,取各班第1名

mongodb分组查询,取各班第1名

慕雪6442864 2018-11-18 13:10:04
做排行,想取每个班级(level)里积分最高的人,各取1个。数据表如图:结果应该为:我使用的代码为:得到的错误结果为:新手小白,查了一天的分组和聚合,越看越糊涂,求大神帮忙指点,谢谢
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

不知道你想要的形式是怎么样的,所以随便写了一下,形式上可以自己再转换。另外也没有给测试数据,以下脚本没有测试过,自己调试一下。

db.collection("test").aggregate([

    // {$match: ...} 如果有条件的话

    {$sort: {level: 1, score: -1},

    {$group: {_id: "$level", student: "$first"}}

]).toArray(function(err, data) {

    // ...

});

关于Aggregation Frameworks的话题太大了没法在这里讲。请查找相关的介绍看一下。这里用到了其中几个运算符:$sort, $group, $first。

查看完整回答
反对 回复 2018-12-03
  • 1 回答
  • 0 关注
  • 989 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信