摘要
上篇文章介绍了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