mongodb-java-driver如何分组多个字段?

时间:2018-03-06 13:18:15

标签: mongodb-java

mongodb-java-driver组只支持一个字段吗? e.g。

group("$customerId", sum("totalQuantity", "$quantity"), avg("averageQuantity", "$quantity"))

如果组有多个字段,如何实现? e.g。

"_id":{platform:"$platform",screen_name:"$screen_name"}

我尝试了以下方式,但它不起作用

group("{platform:\"$platform\",screen_name:\"$screen_name\"}", sum("totalQuantity", "$quantity")

那么如何在mongodb-java-driver中支持多个组字段?

1 个答案:

答案 0 :(得分:0)

    BasicDBObject group1 = new BasicDBObject("$year","$purchase_data");
    BasicDBObject group2 = new BasicDBObject("$month","$purchase_data");
    orders_Collection.aggregate(Arrays.asList(
            match(gt("purchase_data",new Date("2017/01/01"))),
            group(Arrays.asList(group1,group2),sum("total","$sub_total"))
    )).forEach(printBlock);

首先,您可以创建一个列表,以获取要进行“分组依据”的字段,然后执行其他操作,例如sum,avg,min,max ..... $year$purchase_data的年份; $month$purchase_data的月份数。