使用aggregate进行分组时,多个分组条件,如下


原生sql:


db.test.aggregate(

{

$group:{

_id:{name:'$name',pro:'$pro},

total:{$sum:'$num'}

}

},

{

$project:{

total:1

}

}

)


在java中对应如下:

//按照subjname和province进行分组DBObjectgroupFields=newBasicDBObject("_id",newBasicDBObject("subjname","$subjects.name").append("province","$province"));//继续添加sum,avg等其他operationgroupFields.put("AvgScore",newBasicDBObject("$avg","$subjects.scores"));