欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mongodb分组查询-aggregate

程序员文章站 2024-02-20 11:42:22
...

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