使用aggregate進(jìn)行分組時(shí),多個(gè)分組條件,如下
創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為濉溪企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),濉溪網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
原生sql:
db.test.aggregate(
{
$group:{
_id:{name:'$name',pro:'$pro},
total:{$sum:'$num'}
}
},
{
$project:{
total:1
}
}
)
在java中對應(yīng)如下:
//按照subjname和province進(jìn)行分組 DBObject groupFields = new BasicDBObject("_id", new BasicDBObject("subjname", "$subjects.name").append("province", "$province")); //繼續(xù)添加sum,avg等其他operation groupFields.put("AvgScore", new BasicDBObject("$avg", "$subjects.scores"));