mongodb分组查询-aggregate

mongodb分组查询使用记录

根据指定字段分组,并获取分组中的最新一条记录

mongo聚合查询语句如下

db.studentClass.aggregate(
  [
      { "$match" : { userName: { 
			        $in: ["小明", "小红"]
			    } }},
   			 {"$sort":{time:-1}},
     { "$group" : { "_id" : "$userId","userName":{$first:"$userName"},"userSex":{$first:"$userSex"}, "totalScore":{$sum:"$score"}} }
  ])

说明: 其中_id为要分组的字段,可以是多个,例如

 { "$group" : { "_id" : {"userid":"$userid","userName":"$userName"} }

注:这里只是举个例子,可能数据没那么合理

基础数据如下:

_id userId userName userSex className score time
ljdsafhlakjsdf 0001 小红 数学 80 2020-04-30
ljadsfasdfdfsaf 0001 小红 语文 90 2020-04-30
ldsafdsfafdsf 0001 小红 外语 92 2020-04-30
ljdadsfasdfasff 0002 小明 数学 95 2020-04-30
lfasdfasdafadf 0002 小明 语文 70 2020-04-30
lfasdfadafdsaafadf 0002 小明 外语 80 2020-04-30

执行上述的查询语句之后得到的结果是

_id userName userSex totalScore
0001 小红 262
0002 小明 245

你可能感兴趣的:(实战记录,mongodb)