关闭

Mongodb java group by 查询

标签: mongodb java grou数据库javamongodb数据
2243人阅读 评论(0) 收藏 举报

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


参考数据:



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15510次
    • 积分:281
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:8篇
    • 译文:2篇
    • 评论:4条
    最新评论