Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

MongoDB聚合操作详细步骤 PDF 下载


分享到:
时间:2020-05-08 19:38来源:http://www.java1234.com 作者:小锋  侵权举报
MongoDB聚合操作详细步骤 PDF 下载
失效链接处理
MongoDB聚合操作详细步骤 PDF 下载

本站整理下载:
 
相关截图:
 
主要内容:

一、聚合的表达式关键词,如:$sum、$avg等 下表展示了一些聚合的表达式: 表达式 描述 实例 $sum 计算总和。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}]) $avg 计算平均值 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}]) $min 获取集合中所有文档对应 值得最小值。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}]) $max 获取集合中所有文档对应 值得最大值。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}]) $push 在结果文档中插入值到一 个数组中。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}]) $addToSet 在结果文档中插入值到一 个数组中,但不创建副 本。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}]) $first 根据资源文档的排序获取 第一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}]) $last 根据资源文档的排序获取 最后一个文档数据 db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}]) 二、管道的概念 管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令 的参数。
MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果 传递给下一个管道处理。管道操作是可以重复的。 表达式:处理输入文档并输出。表达式是无状态的,只能用于计算当前 聚合管道的文档,不能处理其它的文档。 聚合框架中的管道关键词,如: 1、这里我们介绍一下聚合框架中常用的几个操作:$match、$group 等 $project:修改输入文档的结构。可以用来重命名、增加或 删除域,也可以用于创建计算结果以及嵌套文档。 $match:用于过滤数据,只输出符合条件的文档。$match 使用MongoDB的标准查询操作。 $limit:用来限制MongoDB聚合管道返回的文档数。 $skip:在聚合管道中跳过指定数量的文档,并返回余下的文 档。$unwind:将文档中的某一个数组类型字段拆分成多条,每 条包含数组中的一个值。 $group:将集合中的文档分组,可用于统计结果。 $sort:将输入文档排序后输出。 $geoNear:输出接近某一地理位置的有序文档。 三、mongo聚合框架aggregate使用 数据1 db.emps.insert({"name":"张三","age":30,"sex":"男","job":"CLERK","salary":1 000}) 2 db.emps.insert({"name":"李四","age":28,"sex":"女","job":"CLERK","salary":2 000}) 3 db.emps.insert({"name":"王 五","age":26,"sex":"男","job":"MANAGER","salary":5000}) 4 db.emps.insert({"name":"赵 六","age":32,"sex":"女","job":"MANAGER","salary":6000}) 5 db.emps.insert({"name":"孙七","age":31,"sex":"男","job":"CLERK","salary":4 000}) 6 db.emps.insert({"name":"王八","age":35,"sex":"女","job":"PRESIDENT","salar y":7000})</pre>
查询1 db.emps.find() 1、管道$group 主要进行分的数据操作查询 实现 聚合查询的功能 1、求每个职位的人员数量 1 db.emps.aggregate([{"$group":{"_id":"$job",j_count:{"$sum":1}}}]) 结果:1 1 { "_id": "MANAGER", "j_count": 4 } 2 2 { "_id": "PRESIDENT", "j_count": 3 } 3 3 { "_id": "CLERK", "j_count": 7 } 格式 : [] 里面 , 第一个 字段 _id 表示要操作的内容 , 之后跟着要做的 事情(统计) 2、求出每个职位的总工资 1 db.emps.aggregate([{"$group":{"_id":"$job",job_salary: {"$sum":"$salary"}}}]) 结果: 1 1 { "_id": "MANAGER", "job_salary": 22000 } 2 2 { "_id": "PRESIDENT", "job_salary": 21000 } 3 3 { "_id": "CLERK", "job_salary": 18000 }

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐