MongoDB Aggregate

1. sum

{
    "_id" : ObjectId("50b1aa983b3d0043b51b2c52"),
    "name" : "Nexus 7",
    "category" : "Tablets",
    "manufacturer" : "Google",
    "price" : 199
}

select manufacturer,count(*) from xx

group by manufacturer

db.products.aggregate([
    {$group:
     {
	 _id:"$manufacturer",
	 num_products:{$sum:1}
     }
    }
])

result

{ "_id" : "Amazon", "num_products" : 2 }
{ "_id" : "Sony", "num_products" : 1 }
{ "_id" : "Samsung", "num_products" : 2
{ "_id" : "Google", "num_products" : 1 }
{ "_id" : "Apple", "num_products" : 4 }
时间: 2024-10-24 09:49:27

MongoDB Aggregate的相关文章

MongoDB aggregate 运用篇 个人总结

最近一直在用mongodb,有时候会需要用到统计,在网上查了一些资料,最适合用的就是用aggregate,以下介绍一下自己运用的心得.. 别人写过的我就不过多描述了,大家一搜能搜索到N多一样的,我写一下我的总结. 基础知识 请大家自行查找更多,以下是关键文档. 操作符介绍: $project:包含.排除.重命名和显示字段 $match:查询,需要同find()一样的参数 $limit:限制结果数量 $skip:忽略结果的数量 $sort:按照给定的字段排序结果 $group:按照给定表达式组合结

mongodb aggregate and mapReduce

Aggregate MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*) 语法如下: db.collection.aggregate() db.collection.aggregate(pipeline,options) db.runCommand({ aggregate: "<collection>", pipeline: [ <stage>, <...&g

MongoDB Aggregate Methods(2) MonoDB 的 3 种聚合函数

aggregate(pipeline,options) 指定 group 的 keys, 通过操作符 $push/$addToSet/$sum 等实现简单的 reduce, 不支持函数/自定义变量 group({ key, reduce, initial [, keyf] [, cond] [, finalize] }) 支持函数(keyf) mapReduce 的阉割版本 mapReduce 终极大杀器 count(query) too young too simple distinct(fi

MongoDB aggregate聚合

aggregate相当于 相当于mysql中的group以及一系列的操作 官网介绍地址:http://docs.mongodb.org/manual/reference/sql-aggregation-comparison/ 表达式 描述 实例 $sum 总结从集合中的所有文件所定义的值. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}]) $av

MongoDB aggregate 运用篇(转)

http://www.cnblogs.com/qq78292959/p/4440679.html 最近一直在用mongodb,有时候会需要用到统计,在网上查了一些资料,最适合用的就是用aggregate,以下介绍一下自己运用的心得.. 别人写过的我就不过多描述了,大家一搜能搜索到N多一样的,我写一下我的总结. 基础知识 请大家自行查找更多,以下是关键文档. 操作符介绍: $project:包含.排除.重命名和显示字段 $match:查询,需要同find()一样的参数 $limit:限制结果数量

记录一次 MongoDB aggregate的性能优化经历

在一台配置为2核4G的阿里云服务器上,硬盘是普通的云盘(即SATA盘),除mongoDB外,运行了若干个java应用,单节点mysql和redis,mongo的实际可用内存在1.5G左右.单表数据200万条的时候,一个聚合函数响应时间约为6秒,页面端每秒请求一次,由于响应不够及时,页面刷新不及时,服务端堆积了大量的mongo aggregate请求,系统可用内存不足,直接导致了溢出,mongo服务被动shutdown. mongod(ZN5mongo15printStackTraceERSo+0

mongodb aggregate多个分组条件

使用aggregate进行分组时,多个分组条件,如下 原生sql: db.test.aggregate( { $group:{ _id:{name:'$name',pro:'$pro}, total:{$sum:'$num'} } }, { $project:{ total:1 } } ) 在java中对应如下: //按照subjname和province进行分组  DBObject groupFields = new BasicDBObject("_id", new BasicDBO

(14)mongodb aggregate聚集框架

与group相比,aggregate内置了很多方法,常用的如下: $match 相当于关系型数据库中的where $group 相当于关系型数据库中的group by $project 相当于关系型数据库中的select $sort 相当于关系型数据库中的order by $limit 相当于关系型数据库中的limit $sum 相当于关系型数据库中的sum $sum 相当于关系型数据库中的count db.collection.aggregate(document) 这是用法,document

MongoDB基础教程系列--第七篇 MongoDB 聚合管道

在讲解聚合管道(Aggregation Pipeline)之前,我们先介绍一下 MongoDB 的聚合功能,聚合操作主要用于对数据的批量处理,往往将记录按条件分组以后,然后再进行一系列操作,例如,求最大值.最小值.平均值,求和等操作.聚合操作还能够对记录进行复杂的操作,主要用于数理统计和数据挖掘.在 MongoDB 中,聚合操作的输入是集合中的文档,输出可以是一个文档,也可以是多条文档. MongoDB 提供了非常强大的聚合操作,有三种方式: 聚合管道(Aggregation Pipeline)