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 BasicDBObject("subjname", "$subjects.name").append("province", "$province"));
 //继续添加sum,avg等其他operation
 groupFields.put("AvgScore", new BasicDBObject("$avg", "$subjects.scores"));
时间: 2024-08-08 01:29:39

mongodb aggregate多个分组条件的相关文章

MongoDB aggregate 运用篇 个人总结

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

MSSQL 4表联查,子查询,函数统计,分组条件查询综合应用实例

1 SELECT 2 [UserName] 3 ,[Yhxm] 4 ,[Qx] 5 ,[Phone] 6 ,[Number] = COUNT([UserName]) 7 FROM 8 (SELECT 9 [UserName] = A.[username] 10 ,[Yhxm] = B.[xm] 11 ,[Qx] = D.[P_Power] 12 ,[Phone] = B.[dh] 13 ,[DayCount] = (SELECT COUNT(*) FROM [Caihuashun_FuJian_

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聚合

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 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

Yii2 mongodb 扩展的where的条件加入大于小于号浅析(转)

1. mongodb的where中有比较丰富的 条件,如下: static $builders = [ 'NOT' => 'buildNotCondition', 'AND' => 'buildAndCondition', 'OR' => 'buildOrCondition', 'BETWEEN' => 'buildBetweenCondition', 'NOT BETWEEN' => 'buildBetweenCondition', 'IN' => 'buildInC

Yii2 mongodb 扩展的where的条件增加大于 小于号

1. mongodb的where中有比較丰富的 条件.例如以下: static $builders = [ 'NOT' => 'buildNotCondition', 'AND' => 'buildAndCondition', 'OR' => 'buildOrCondition', 'BETWEEN' => 'buildBetweenCondition', 'NOT BETWEEN' => 'buildBetweenCondition', 'IN' => 'buildI

(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