MongoDB常用命令汇总之基本聚合函数。

count

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

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

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

举例:

db.collection.find(<query>).limit().count();

db.collection.find(<query>).skip().count();


distinct

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

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

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

举例:

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

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

db.runCommand({"distinct" : "collectionname" , "key" : "distinctfined" , "query" : <query>});

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

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


group

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

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

参数说明:key:用于分组文档的字段。和keyf两者必须有一个;

                    keyf:可以接受一个javaScript函数。用于动态的确定分组文档的字段,和key两者必须有一个;

                    initial:reduce中使用变量的初始化;

                    reduce:执行reduce函数。函数需要返回值;

                    cond:执行过滤的条件;

                    finalize:在reduce执行完成,结果集返回之前对结果集最终执行的函数。可选的。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值