mongondb java group 总结:
// 获取集合,就是你要查询的表
DBCollection myColl = getCollection();//分组
DBObject groupFields = new BasicDBObject( "_id", "$"+groupByPro);//groupByPro为数据库中的字段,即要进行分组的依据
//对应的个数
groupFields.put("count", new BasicDBObject( "$sum", 1));
DBObject group = new BasicDBObject("$group", groupFields );
//where条件
DBObject match = new BasicDBObject();
//根据需要条件查询
match.put("数据库中的字段", 参数);
//for example
match.put("CREATE_TIME", new BasicDBObject("$gte",startTime).append("$lte", endTime)); 事件条件 》=startTime <=endTime
match.put("NAME", 参数值);
//排序
DBObject sortFields = new BasicDBObject("count", -1);
DBObject sort = new BasicDBObject("$sort", sortFields );
AggregationOutput output = myColl.aggregate(project,group, sort);
最后返回的是{ "serverUsed" : "/ip:27088" , "result" : [ { "_id" : 0 , "count" : 53100} , { "_id" :
1 , "count" : 56} , { "_id" : 4 , "count" : 2}] , "ok" : 1.0}
处理数据可以将其转换为JSONArray类型"result" : [ { "_id" : 0 , "count" : 53100} , { "_id" :
1 , "count" : 56} , { "_id" : 4 , "count" : 2}]
这里给出的结果只是一个事例,按照状态分组得到的是状态为0的个数为53100,为1的是56个,。。。
里面就是一个个JSONObject对象
这就相当于sql 查询的:select 字段,count(字段) from 表名 where 条件 group by 字段;
参考数据: