Java操作mongodb分组查询
直接上代码
//筛选条件对象
List<Bson> filter = new ArrayList<>();
//筛选条件1
if(startTime != null && endTime != null){
filter.add(Filters.gte("occurTime",startTime));
filter.add(Filters.lte("occurTime",endTime));
}
//筛选条件2
if(sex != null){
filter.add(Filters.eq("sex",sex));
}
ArrayList<Bson> list = new ArrayList<>();
//先进行帅选,得出符合条件的数据
list.add(Aggregates.match(filter));
//再进行分组,拿出想要的字段值
//按照id进行分组,并统计每个分组中个数(在每个分组中通过id字段的值取获取总数)
list.add(Aggregates.group("$id", Accumulators.sum("id",1)));
//分组查询
AggregateIterable<Document> aggregate = collection.aggregate(list);
MongoCursor<Document> result = aggregate.iterator();
//遍历处理结果集
while (result.hasNext()){
//拿到单个结果
Document next = result.next();
//处理。。。。
}