当前位置: 代码迷 >> 综合 >> JAVA - mongodb 聚合查询方式二
  详细解决方案

JAVA - mongodb 聚合查询方式二

热度:93   发布时间:2023-10-21 12:47:48.0

二、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语句熟悉性