使用aggregate进行分组时,多个分组条件,如下
原生sql:
db.test.aggregate(
{
$group:{
_id:{name:'$name',pro:'$pro},
total:{$sum:'$num'}
}
},
{
$project:{
total:1
}
}
)
在java中对应如下:
1
2
3
4
|
//按照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"
));
|
本文转自布拉君君 51CTO博客,原文链接:http://blog.51cto.com/5148737/1638112,如需转载请自行联系原作者