MongoDB的再次相逢之聚合(二)

来源:互联网 发布:单片机与嵌入式的联系 编辑:程序博客网 时间:2024/04/25 18:13

前言

MongoDB为在聚合上执行基本的聚合任务提供了一些命令。这些命令在聚合框架出现之前就已经存在了,现(在大多数情况下)已经被聚合框架取代。然而,复杂的group操作可能仍然需要使用Javascript,count和distinct操作可以被简化为普通命令,不需要使用聚合框架。

count

count是最简单的聚合工具,用于返回集合中的文档数量:

db.users.count();db.users.insert({"x":1});

也可以给count传递一个查询文档,Mongo会计算查询结果的数量:

db.users.count({"x":1});

对于分页显示来说总数非常必要:“共439个,目前显示0~10个”。但是,增加查询条件会使count变慢。count可以使用索引,但是索引并没有足够的元数据提供count使用,所以不如直接使用查询来得快。

distinct

distinct用来找出给定键的所有不同值。使用时必须指定集合和键。

db.runCommand({"distinct":"people","key":"age"})

假设集合中有这样的文档集合:

{name:"Ada",age:20}{name:"Fred",age:35}{name:"Susan",age:60}{name:"Andy",age:35}

如果对”age”键使用distinct,会得到所有不同的年龄:

db.runCommand({"distinct":"people","key":"age"}){"values":[20,35,60],"ok":1}

group

使用group可以执行更复杂的聚合。先选定分组所依据的键,而后MongoDB就会将集合依据选定键的不同值分成若干组。然后可以对每一个分组内的文档进行聚合,得到一个结果文档。
其实可以理解成SQL中的group by;

—-学如逆水行舟,不进则退—–

0 0
原创粉丝点击