使用聚合,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

MongoDB,分组,聚合相关推荐

  1. mongodb 分组聚合_mongodb 聚合命令

    MongoDB中聚合主要用于处理数据,如统计平均值,求和等等,并返回计算后的数据结果. 1. count count函数返回指定集合中的数量. > db. mediaCollection.cou ...

  2. mongodb 分组聚合_MongoDB干货总结

    什么是MongoDB 基于分布式文件存储的数据库,介于非关系型和关系型数据库之间. MongoDB和MySQL对比 MongoDB有什么特点 (1)面向集合存储数据,数据以json格式存储: (2)查 ...

  3. mongodb 分组聚合_MongoDB按键值对进行聚合/分组

    我的数据看起来像这样: { "_id" : "9aa072e4-b706-47e6-9607-1a39e904a05a", "customerId&q ...

  4. mongodb 分组聚合_MongoDB学习笔记整理,赶紧收藏起来吧

    mongodb是最近几年最火的nosql数据库,在很多大型企业应用广泛,今天就一起学习它的用法.花了一周时间,整理下面的学习记录,希望对大家有所帮助. mongodb 1. mongodb的安装, w ...

  5. mongodb 分组聚合_MongoDB聚合嵌套分组

    我有资产收集,其中包含数据 { "_id" : ObjectId("5bfb962ee2a301554915"), "users" : [ ...

  6. MongoDB多条件分组聚合查询

    MongoDB多条件分组聚合查询 1.样例数据 {"_id" : ObjectId("5fa13fb76c3107345a82c047"),"_cla ...

  7. mongodb的聚合操作

    mongodb的聚合操作 1 mongodb的聚合是什么 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组.过滤等功 ...

  8. mongodb 聚合框架_如何使用MongoDB的聚合框架处理高级数据处理

    mongodb 聚合框架 MongoDB has come a long way. Even though there are many NoSQL databases out there, Mong ...

  9. MongoDB 分组统计

    [摘要] MongoDB 在进行分组统计时如果面对一些比较复杂的计算情况,往往会遇到 shell 脚本过于复杂的问题.而集算器 SPL 语言,则因其有丰富的函数库及易用性恰好能弥补 Mongo 这方面 ...

最新文章

  1. Docker常用命令大全
  2. 《白话法律42讲》读后感
  3. 经典高斯算法,一起学习数据结构和算法吧!
  4. 《unix设备驱动》内存分配
  5. 小白入门商业数据分析师的课程测评
  6. 腾讯万亿级Elasticsearch应用及优化解密
  7. c语言的时间函数的介绍,c语言中时间函数介绍
  8. bzoj 4401: 块的计数
  9. Unity实现爆炸的伤害值计算
  10. jvm内存模型_JVM|02内存模型
  11. 蓝桥杯 ALGO-74 算法训练 连接字符串
  12. 循环矩阵的快速幂(bzoj 2510: 弱题)
  13. Ubuntu18.04编译pulseaudio14.x(八)
  14. Android之TextView属性大全
  15. Java游戏框架编写
  16. 第一章 机器学习(浙大胡浩基教授)
  17. 使用百度siteapp开发网站的App-(IOS和Android版本)
  18. JHU计算机专业学费,约翰霍普金斯大学学费多少 贵不贵
  19. 项目经理人才培养专题︱优秀项目经理能力建设(一)
  20. 【BZOJ】1778: [Usaco2010 Hol]Dotp 驱逐猪猡

热门文章

  1. 权威媒体、专家对新书的推荐
  2. 利用rsync+inotify搭建实时同步系统
  3. Android Lazy url
  4. PHP 中和 HTTP 相关的函数及使用
  5. 如何找到 AWS 环境下应用程序中易于得手的漏洞?
  6. 谷歌修复已遭在野利用的两个 0day
  7. Kramdown 配置不当引发 GitHub Pages 多个 RCE,得 $2.5万($6.1万系列之二)
  8. Waydev 客户的GitHub 和 GitLab OAuth 令牌被盗,源代码遭访问
  9. 006-JDK的安装测试
  10. 三分钟快速理解javascript内存管理