您的位置:首页 > 数据库 > Mongodb

Mongodb java group by 查询

2013-12-05 11:49 441 查看
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 project = new BasicDBObject("$match",match); //$match相当于where

        //排序

        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 字段;

参考数据:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息