二、DBObject
不多说,如果大家觉得上一篇文章特别长篇大论,那么下面我给大家带来一种代码更简洁的聚合查询:
直接上代码吧。
1.注意导入的包:
import com.mongodb.DBObject;
import com.mongodb.util.JSON;
2.$macth: (beginDay-查询开始日期;endDay-查询结束日期)
DBObject match = (DBObject) JSON.parse("{$match:{'status':'1','time':{$gte:'"+beginDay+"',$lte:'"+endDay+"'}}}");
3.$group:(以userId分组,统计用户数量,累加amout字段值,取amout字段最大值)
DBObject group = (DBObject) JSON.parse("{$group:{_id:'$userId', count:{$sum:1},total:{$sum:'$amount'},maxSigle:{$max:'$amount'}}}");
条件拼接完,开始查询:
List<DBObject> list = new ArrayList<DBObject>();
list.add(match);
list.add(group);
AggregationOutput Output = mongoTemplate.getCollection("表名").aggregate(list);
遍历结果就不用在说了,遍历在JAVA - mongodb 聚合查询方式一
是不是比一种方式简单多了。但是也要考验自身对mongodb语句熟悉性