MongoDB,分组,聚合
来源:互联网 发布:最好背单词软件 编辑:程序博客网 时间:2024/05/16 06:34
使用聚合,db.集合名.aggregate… 而不是find
管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数。
MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。
每一个操作符(集合)都会接受一连串的文档,对这些文档做一些类型转换,最后将转换后的文档作为结果传递给下一个操作符,对于最后一个操作符,是将结果返回给客户端
//分组(这里制定了分组字段 $+字段名)
//这里可以理解为,吧lastModifyByUserCode 当作唯一标识 _id,字段count 用 $sum 计算 同一个lastModifyByUserCode出现次数
db.test.aggregate({'$group':{'_id':'$lastModifyByUserCode','count':{'$sum':1}}})
//根据多个字段分组
db.test.aggregate({$group:{_id:{lastModifyByUserCode:'$lastModifyByUserCode',createTime:'$createTime'}}})
//显示其他字段(必须使用聚合[$sum,$avg,$first,$last,$max,$min,$push,$addToSet,$stdDevPop,$stdDevSamp])
db.test.aggregate({'$group':{'_id':'$lastModifyByUserCode','count':{'$sum':1},'createTime':{'$first':"$createTime"}}})
//投射,可以对字段重命名,可以创建字段副本(注意:在对字段重命名时,MongoDB并不会记录字段的历史名称,因此如果在"orginalfieldname"字段上有一个索引,聚合框架无法在下面的排序操作中使用这个索引,所以,应该尽量在修改字段名称之前使用索引)
db.test.aggregate({$project:{createTime2:'$createTime',createTime3:'$createTime',_id:0}})
$match 用于对文档集合进行筛选,支持find一样的筛选条件,不能在$match中使用地理空间操作符,(尽量把$match放在多个聚合中的第一个,这样可以有效利用索引)
而且根据官方文档,如果在$match使用了全文索引,后面跟着的聚合就不用再使用$text
阅读全文
0 0
- Mongodb 聚合 分组
- MongoDB,分组,聚合
- mongodb聚合利用日期分组。
- mongodb-aggregate聚合日期分组
- mongodb聚合函数时间分组问题
- mongodb的聚合查询(分组统计、排序)
- MongoDB中的分组聚合在java中的用法
- C# MongoDB 查询,分组,聚合,排序,条件,分页
- C# MongoDB 查询,分组,聚合,排序,条件,分页
- C# MongoDB 查询,分组,聚合,排序,条件,分页
- mongodb聚合函数aggregate操作 分组分页查询统计
- mongodb[八]聚合查询、统计、分组、平均值、最大值、最小值
- MongoDB聚合
- MongoDB 聚合
- mongoDB聚合
- MongoDB 聚合
- MongoDB 聚合
- Mongodb 聚合
- 月下湿吻,游行,私会诺奖得主:斯坦福人都这么玩!
- bzoj1559 [JSOI2009]密码(AC自动机+状压DP)
- 【运维】略谈Raid级别
- dbimage中如何装载jpg文件 2015-02-27 20:44:15| 分类: 电脑 |举报|字号 订阅 下载LOFTER我的照片书 | dbimage中如何装载jpg文
- 设以带头结点的双向循环链表表示的线性表L=(a1,a2,……,an)。
- MongoDB,分组,聚合
- 青春的痛苦
- project euler 19 Counting Sundays
- 以一种极其优雅的方式来调用Toast和Snackbar
- VS2015断点调试神坑之为引用变量赋值为null不成功?
- 九个绝招,让你戒掉旧情人
- 晓之以理,不如动之以情——新书《以大致胜》解读(下篇)
- 使用Scala 读写MySQL 数据给Spark任务执行
- bzoj 3725: PA2014 Final Matryca 乱搞