一、BasicDBObject
整个聚合查询是统计用户的各种状态下的用户数量为场景:
1.筛选条件:
date为查询日期:
BasicDBObject Query = new BasicDBObject();
Query.put("time",new BasicDBObject("$gte", date + " 00:00:00")
.append("$lte", date + " 23:59:59"));
如果有多个条件:直接加Query.put("status", 0);
如果有OR筛选:
BasicDBList values = new BasicDBList();
values.add(new BasicDBObject("status", new BasicDBObject("$exists",false)));
values.add(new BasicDBObject("status", 0));
Query.put("$or", values);
其中 new BasicDBObject("$exists",false)) 就是“status”不存在(mongodb文档可不等于实体的字段)
2.拼接match
DBObject Match = new BasicDBObject("$match", Query);
将上一步的Query放入macth筛选中
3.拼接分组条件
此步相当于SQL的Group By
BasicDBObject GroupBy