①MongoDB 的聚合功能
MongoDB 的聚合功能,聚合操作主要用于对数据的批量处理,往往将记录按条件分组以后,然后再进行一系列操作,例如,求最大值、最小值、平均值,求和等操作。
聚合操作还能够对记录进行复杂的操作,主要用于数理统计和数据挖掘。
在MongoDB中,聚合操作的输入是集合中的文档,输出可以是一个文档,也可以是多条文档。
②聚合操作的三种方式
1、聚合管道(Aggregation Pipeline)
2、单目的聚合操作(Single Purpose Aggregation Operation)
3、MapReduce 编程模型
③聚合体验
--找出考80分以上的课程门数最多的3个学生
准备样例数据
for(var i=0;i<100;i++){
for(var j=0;j<4;j++){
db.scores.insert({"studentId":"s"+i,"course":"课程"+j,"score":Math.random()*100});
}
}
执行步骤
1:找到所有考了80分以上的学生,不区分课程
{"$match":{"score":{$gte:80}}}
2:将每个学生的名字投影出来
{"$project":{"studentId":1}}
3:对学生的名字排序,某个学生的名字出现一次,就给他加1
{"$group":{"_id":"$studentId","count":{"$sum":1}}}
4:对结果集按照count进行降序排列
{"$sort":{"count":-1}}
5:返回前面的3条数据
{"$limit":3}
最终执行的语句就是
db.scores.aggregate(
{"$match":{"score":{$gte:80}}},
{"$project":{"studentId":1}},
{"$group":{"_id":"$studentId","count":{"$sum":1}}},
{"$sort":{"count":-1}},
{"$limit":3}
)
④
转载于:https://www.cnblogs.com/Lucky-stars/p/10555200.html