Mongodb聚合函数count、distinct、group如何实现数据聚合操作

上篇文章给大家介绍了Mongodb中MapReduce实现数据聚合方法详解,我们提到过Mongodb中进行数据聚合操作的一种方式——MapReduce,但是在大多数日常使用过程中,我们并不需要使用MapReduce来进行操作。在这边文章中,我们就简单说说用自带的聚合函数进行数据聚合操作的实现。

MongoDB除了基本的查询功能之外,还提供了强大的聚合功能。Mongodb中自带的基本聚合函数有三种:count、distinct和group。下面我们分别来讲述一下这三个基本聚合函数。

(1)count

作用:简单统计集合中符合某种条件的文档数量。

使用方式:db.collection.count()或者db.collection.find().count()

参数说明:其中是用于查询的目标条件。如果出了想限定查出来的最大文档数,或者想统计后跳过指定条数的文档,则还需要借助于limit,skip。

举例:

db.collection.find().limit();

db.collection.find().skip();

(2)distinct

作用:用于对集合中的文档针进行去重处理

使用方式:db,collection.distinct(field,query)

参数说明:field是去重字段,可以是单个的字段名,也可以是嵌套的字段名;query是查询条件,可以为空;

举例:

db.collection.distinct("user",{“age":{$gt:28}});//用于查询年龄age大于28岁的不同用户名

除了上面的用法外,还可以使用下面的另外一种方法:

db.runCommand({"distinct":"collectionname","key":"distinctfied","query":})

collectionname:去重统计的集合名,distinctfield:去重字段,,是可选的限制条件;

举例:

这两种方式的区别:第一种方法是对第二种方法的封装,第一种只返回去重统计后的字段值集合,但第二种方式既返回字段值集合也返回统计时的细节信息。

(3)group

作用:用于提供比count、distinct更丰富的统计需求,可以使用js函数控制统计逻辑

使用方式:db.collection.group(key,reduce,initial[,keyf][,cond][,finalize])

备注说明:在2.2版本之前,group操作最多只能返回10000条分组记录,但是从2.2版本之后到2.4版本,mongodb做了优化,能够支持返回20000条分组记录返回,如果分组记录的条数大于20000条,那么可能你就需要其他方式进行统计了,比如聚合管道或者MapReduce;

上面对Mongodb中自带的三种三种聚合函数进行了简单的描述,并对需要注意的地方进行了简单的说明,如果需要深入使用,可以进入Mongodb官网查看相关细节信息,谢谢。相关阅读:

jQuery对checkbox 复选框的全选全不选反选的操作

mysql 复制过滤重复如何解决

Android实现可浏览和搜索的联系人列表

C#使用系统方法发送异步邮件完整实例

MYSQL必知必会读书笔记第七章之数据过滤

android 引导界面的实现方法

java中的自增问题介绍

使用JS获取当前地理位置方法汇总

js分页代码分享

SQLite学习手册(SQLite在线备份)

Android解决dialog弹出时无法捕捉Activity的back事件的方法

解决 Xcode 6-Beta2 智能提示bug

JavaScript实现的一个倒计时的类

Objective C从远程url下载图片方法汇总

php数据group去重,MongoDB_Mongodb聚合函数count、distinct、group如何实现数据聚合操作, 上篇文章给大家介绍了Mong - phpStudy...相关推荐

  1. mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...

    如何在Java程序中访问mysql数据库中的数据并进行简单的操作 在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据 ...

  2. 第四章 SQL聚合函数 COUNT(二)

    文章目录 第四章 SQL聚合函数 COUNT(二) 权限 性能 未提交事务所做的更改 示例 第四章 SQL聚合函数 COUNT(二) 权限 要使用COUNT(*),必须对指定的表具有表级别的SELEC ...

  3. mysql 聚集函数与group by,聚集函数可以和where一起用吗 聚合函数如何与group by函数一起使用...

    SQL中where语句能用聚合函数吗?聚合函数应该用在having子句中. 聚合函数如果想用在where中的话,应该只能用子查询来实现(在子查询中进行聚合函数计算,然后在主查询中进行where判断). ...

  4. php mssql统计表中的主键个数,MSSQL_SQL Server中统计每个表行数的快速方法,我们都知道用聚合函数count()可 - phpStudy...

    SQL Server中统计每个表行数的快速方法 我们都知道用聚合函数count()可以统计表的行数.如果需要统计数据库每个表各自的行数(DBA可能有这种需求),用count()函数就必须为每个表生成一 ...

  5. 第三章 SQL聚合函数 COUNT(一)

    文章目录 第三章 SQL聚合函数 COUNT(一) 大纲 参数 描述 没有行返回 流字段 第三章 SQL聚合函数 COUNT(一) 返回表或指定列中的行数的聚合函数. 大纲 COUNT(*)COUNT ...

  6. python数据框去重_【Python】基于某些列删除数据框中的重复值

    Python按照某些列去重,可用drop_duplicates函数轻松处理.本文致力用简洁的语言介绍该函数. 一.drop_duplicates函数介绍 drop_duplicates函数可以按某列去 ...

  7. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧

    本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...

  8. MySQL中聚合函数count的使用和性能优化

    本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 count 连用 3.group by (多个字段) ...

  9. mysql 更新时间加数字_Mysql实战45讲笔记:8、聚合函数count

    count(*)的实现方式 在不同的MySQL引擎中,count()有不同的实现方式 1. MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count()的时候会直接返回这个数,效率很高: 2. ...

最新文章

  1. ubuntu vscode_如何在Ubuntu-18.04下用VSCode编译LibTorch
  2. 使用JustDecompile修改程序集
  3. Kail Linux渗透测试实训手册第3章信息收集
  4. CCNA-EiGrp学习
  5. Android实现相册分享功能,Android系统自带分享功能的实现(可同时分享文字和图片)...
  6. spring mvc学习(17)Intellij IDEA创建maven项目无java文件问题
  7. Hibernate框架(持久化类、缓存、事务管理)
  8. python第二阶段第四天 装饰器和匿名函数
  9. 判别模型和生成模型(Discriminative Model Generative Model)【转】
  10. AspectJ在Android 中的使用攻略
  11. Spring【DAO模块】就是这么简单
  12. iOS开发之时区的获取,设置,创建
  13. 在网页中显示某个目录文件(未成功)
  14. 如何使用命令行进行基本操作
  15. 共享图书横空出世一本书看十天只需一块钱
  16. latex 琐粹记录
  17. 一个故事轻松记忆常见252个英语字根(1~30)
  18. 浏览器主页被hao123锁定解决办法
  19. Android 7.1 亮度调节之BrightnessController
  20. 免费外贸Wordpress网站内容采集教程

热门文章

  1. keyberos认证问题导致GSS initiate failed
  2. cad面积累计lisp怎么用_CAD增强的填充面积统计插件LISP源码
  3. eclipse命令大全
  4. 用MSNCartoon制作个性化卡通头像
  5. 基于云的产品上线部署qqfarm
  6. 办公室设计公司关于办公室装修全过程解剖
  7. Global Illumination_Screen-Space Ray Tracing(SSR)
  8. TPTP安装与使用问题
  9. 工作流Airflow的性能优化,应对dag数目的激增
  10. 获得屏幕的宽度和高度