mongo分组聚合(sum)在java中的用户:Aggregation agg = newAggregation();

来源:互联网 发布:长沙知豆电动车租赁 编辑:程序博客网 时间:2024/05/21 22:51

先上图:



现在已知数据库中有3条数据,订单id对应了有3个商品(sku),根据商品id经行分组得到:

sql脚本:

db.applyReturn.aggregate([{ $match: { oid: "574417900cf233e45585ce1e" } },{$group : {_id : "$itemId", qua : {$sum : "$qua"}}}])




能够正常分组了,现在要怎么样把mongo的shell脚本转换成java代码呢????????



我想啊想,找啊找,各种找



终于在http://stackoverflow.com/questions/15624473/spring-data-mongodb-aggregation-framework-integration找到了:


现在sku(颜色,尺寸)不同还得继续分组,那么最终得到的java代码就是:


group中各个字段之间用“,”分割

agg = newAggregation(match(Criteria.where("oid").is(orderId)),group("oid","itemId","color","size").sum("qua").as("qua"));AggregationResults<ApplyReturn> results = mongoTemplate.aggregate(agg, "applyReturn", ApplyReturn.class);


在CMD中执行~

db.applyReturn.aggregate([ { "$match" : { "oid" : "574417900cf233e45585ce1e"}} , { "$group" : { "_id" : { "oid" : "$oid" , "itemId" : "$itemId","color":"$color","size":"$size"} , "total" : { "$sum" : "$qua"}}}])





终于大功告成了;



之前写了一个mongo的高级用法分组聚合(count)的,一并看看呗~~


http://blog.csdn.net/xb12369/article/details/49279825

0 0