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

所属分类: 数据库 / MongoDB 阅读数: 82
收藏 0 赞 0 分享

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

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

(1)count

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

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

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

举例:

复制代码 代码如下:

db.collection.find(<query>).limit();
db.collection.find(<query>).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":<query>})

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

举例:

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

(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官网查看相关细节信息,谢谢。

更多精彩内容其他人还在看

MongoDB 3.4 安装以 Windows 服务方式运行的详细步骤

这篇文章主要介绍了MongoDB 3.4 安装以 Windows 服务方式运行的详细步骤,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB如何查询耗时记录的方法详解

查询操作是我们日常操作数据库经常会遇到的一个功能,下面这篇文章主要给大家介绍了关于MongoDB如何查询耗时记录的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

MongoDB开源数据库开发工具dbKoda

这篇文章主要介绍了MongoDB开源数据库开发工具dbKoda的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB 查询操作的实例详解

这篇文章主要介绍了MongoDB 查询操作的实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
收藏 0 赞 0 分享

java操作mongoDB查询的实例详解

这篇文章主要介绍了java操作mongo查询的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
收藏 0 赞 0 分享

windows7下使用MongoDB实现仓储设计

本文给大家介绍了本人在物联网环境下基于MongoDB实现的仓储的配置信息及具体的使用示例,非常的实用,有需要的小伙伴可以参考下
收藏 0 赞 0 分享

关于Mongodb 认证鉴权你需要知道的一些事

最近因为mongodb被黑了,早先我就疑惑过怎么这东西开启服务就能用了,后来找了各方资料,知道MongoDB默认是没有鉴权的,所以这篇文章主要给大家介绍了关于Mongodb认证鉴权你需要知道的一些事,需要的朋友可以参考下。
收藏 0 赞 0 分享

MongoDB TTL索引的实例详解

这篇文章主要介绍了 MongoDB TTL索引的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB如何对数组中的元素进行查询详解

MongoDB在文档上支持数组,其次数组上可以实现嵌套,以及数组元素也可以文档。所以下面这篇文章主要给大家介绍了关于MongoDB如何对数组中元素进行查询的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

Mac中mongoDB的安装与卸载步骤详解

mongoDB是一个非常不错的数据库,最近也正在学习mongoDB,在使用一个数据库前必不可少的就是安装和卸载,所以下面这篇文章主要给大家介绍了关于Mac系统中mongoDB安装与卸载的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享
查看更多