您的位置:首页 > 编程语言 > Java开发

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

2016-05-25 16:36 756 查看
先上图:





现在已知数据库中有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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: