[MongoDB]count,gourp,distinct
摘要
上篇文章介绍了CRUD的操作,会了这些,基本上可以完成很多工作了。但如果遇到统计类的操作,那么就需要学习下本篇的内容了。
相关文章
count,gourp,distinct,mapReduce
count
作用类似sql中的count函数,用来计数。
如上图所示,列举了不带参数,带参数,以及先find后count的方式。
distinct
去重,接收字段参数,语义:按某字段去重。比如上图中,我们按name去重。
group
顾名思义是分组的意思,与sql中group by相同。但在mongodb中group就比较复杂了。
参数:
key:按照key进行分组。
initial:每组都分享的“初始化函数”。可以在此处初始化一些变量,供每组进行使用。
$reduce:该函数有两个参数,第一个参数是当前document对象,第二个参数是上次操作的累计对象。collection中有多少个document就会调用多少次$reduce。
condition:过滤条件。
finalize:该函数会在每组document执行完成后,就会调用该函数,可以在这个函数中,做一些后续的工作,比如进行计数操作,统计结果的个数。
例子:根据age进行分组,查找每个年龄段的人员姓名。如图一所示:
图一
计数,分组后,符合条件的user有多少个。
总结
本篇文章介绍了常见的集合聚合操作。其中,group的操作比较麻烦一点。了解group的参数的作用,平时这些命令可以保存一个模板。用到的时候沾过去,在这个的基础上做修改比较方便点。因为实在太长了。
参考
http://www.cnblogs.com/huangxincheng/archive/2012/02/21/2361205.html
[MongoDB]count,gourp,distinct的更多相关文章
- MongoDB常用查询,排序,group,SpringDataMongoDB update group
MongoDB查询 指定查询并排序 db.getCollection('location').find({"site.id":"川A12345","s ...
- 存储库之mongodb,redis,mysql
一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性 ...
- MongoDB,SpringBoot,SpringDataMongoDB
MongoDB,SpringBoot,SpringDataMongoDB 双刃剑MongoDB的学习和避坑 MongoDB 是一把双刃剑,它对数据结构的要求并不高.数据通过key-value的形式存储 ...
- mongodb的连接问题,绑定IP惹的祸
刚刚安装好了 mongodb .对着 mongodb in action上的例子敲了下面的代码: public class TestDBConnect { @Test public void test ...
- SQL Server数据库--》top关键字,order by排序,distinct去除重复记录,sql聚合函数,模糊查询,通配符,空值处理。。。。
top关键字:写在select后面 字段的前面 比如你要显示查询的前5条记录,如下所示: select top 5 * from Student 一般情况下,top是和order by连用的 orde ...
- 5.非关系数据库(Nosql)它mongodb:创建一个集合,导出和导入备份, 数据恢复,进出口
1 固定集合 固定集合值得是事先创建并且大小固定的集合 2 固定集合的特征:固定集合非常像环形队列.假设空间不足,最早文档就会被删除,为新的文档腾出空间.一般来说.固定集合适用于不论什么想要自己 ...
- java 实现mongoDB 增加,删除,修改,查看,多条件查询,聚合查询,分组查询(史上最全)
首先idea创建一手springboot项目 引入如下依赖 <dependency> <groupId>org.mongodb</groupId> <arti ...
- entity framework 新手入门篇(3)-entity framework实现orderby,count,groupby,like,in,分页等
前面我们已经学习了entityframework的基本的增删改查,今天,我们将在EF中实现一些更加贴近于实际功能的SQL方法. 承接上面的部分,我们有一个叫做House的数据库,其中包含house表和 ...
- Redis安装,mongodb安装,hbase安装,cassandra安装,mysql安装,zookeeper安装,kafka安装,storm安装大数据软件安装部署百科全书
伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/server-sofeware-install.html 一.安装mongodb 官网下载包mongo ...
随机推荐
- golang学习之旅:使用go语言操作mysql数据库
1.下载并导入数据库驱动包 官方不提供实现,先下载第三方的实现,点击这里查看各种各样的实现版本.这里选择了Go-MySQL-Driver这个实现.地址是:https://github.com/go-s ...
- UOJ261 【NOIP2016】天天爱跑步
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- springMVC配置步骤
所用的工具为eclipse for javaEE,tomcat 8.0 1.导入jar包 把以上的jar包全部复制到项目的WebContent/WEB-INF/lib目录中 2.在webContent ...
- Objective-C 中基于RunTime实现的反射
一.反射 反射,一般表现在字符串和Class转换,字符串和内部方法转换,字符串和属性的转换(取值和赋值). 二.Objective-C中的反射 OC的反射是基于其Runtime实现的. 以执行某个函数 ...
- linux下history命令显示历史指令记录的使用方法
Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...
- JSP+Servlet+javabean+oracle实现页面多条件模糊查询
之前写过一篇JSP+Servlet+javabean+mysql实现页面多条件模糊查询 使用的是mysql进行的分页查询,mysql用limit控制,而oracle则是用rownum,今天第一次写or ...
- 真机调试之android手机+chrome
真机调试之android手机+chrome 虽然chrome上的移动设备模拟器很强大,但是在真机运行的时候,总会遇到一些小问题,这时就需要使用真机调试了. 第一步:准备一台android手机,并在手机 ...
- hibernate......1、2级缓存
1.什么是缓存? 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能.Hibernate在 ...
- StringUtils 的常用方法
StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 ...
- WinForm------点击Control弹出MessageBox
private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //弹 ...