- A+
所属分类:mongodb
MongoDB中聚合主要用于处理数据,如统计平均值,求和等等,并返回计算后的数据结果。
1. count
count函数返回指定集合中的数量。
1 2 3 4 |
> db. mediaCollection.count() 4 > db. mediaCollection.find( { Publisher : "Apress", Type: "Book" } ).count() 1 |
2. distinct
distinct函数用来除重,找出所有不同的值。
1 2 3 4 |
> db. mediaCollection.distinct( "Title") [ "Definitive Guide to MongoDB, the", "Nevermind" ] > db. mediaCollection.distinct ("Tracklist.Title") [ "In Bloom", "Smells like teen spirit" ] |
3. group
group函数是类似于SQL的GROUP BY功能,虽然语法稍有不同。该命令的目的是返回分组的项目的数组。该函数有三个参数: key, initial, reduce。
key参数指定要以什么来分组,如以标题进行分组。
initial参数每个分组reduce调用的初始值。
reduce参数同类元素放在一起,需要两个参数:当前被遍历的文档和聚集计数器对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
> db. mediaCollection.group ( ... { ... key: {Title : true}, ... initial: {Total : 0}, ... reduce : function (items,prev) ... { ... prev.Total += 1 ... } ... } ... ) [ { "Title" : "Definitive Guide to MongoDB, the", "Total" : 1 }, { "Title" : "Nevermind", "Total" : 2 }, { "Title" : null, "Total" : 1 } ] |
除了key, initial, reduce参数,还可以指定三个可选参数:keyf,cond,finalize。
group函数目前不能在分片环境下使用,可以使用MapReduce函数来代替。

微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~