Java中怎么实现一个Group功能
本篇文章为大家展示了Java中怎么实现一个Group功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
接口方法如下:
/***keyColumn:newString[]{"xxxName","xxxType"}<br>*condition:查询条件,可为空<br>*initial:分组统计初始变量,为空时自动为每列提供初始变量<br>*reduce:记录处理function<br>*finalize:finalize函数,可为空<br>*/publicBasicDBListgroup(String[]keyColumn,DBObjectcondition,DBObjectinitial,Stringreduce,Stringfinalize){DBCollectioncoll=getCollection();DBObjectkey=newBasicDBObject();for(inti=0;i<keyColumn.length;i++){key.put(keyColumn[i],true);}condition=(condition==null)?newBasicDBObject():condition;if(StringUtils.isEmpty(finalize)){finalize=null;}if(initial==null){//定义一些初始变量initial=newBasicDBObject();for(inti=0;i<keyColumn.length;i++){DBObjectindex=newBasicDBObject();index.put("count",0);index.put("sum",0);index.put("max",0);index.put("min",0);index.put("avg",0);index.put("self","");initial.put(keyColumn[i],index);}}BasicDBListresultList=(BasicDBList)coll.group(key,condition,initial,reduce,finalize);returnresultList;}
实现案例:
//任务统计@Action(value="getTaskStatistic",results={@Result(name="success",type="json",params={"includeProperties","jsonResult"})})publicStringgetTaskStatistic(){DBObjectinitial=newBasicDBObject();DBObjectindex=newBasicDBObject();index.put("count",0);index.put("taskStatus","");initial.put("taskStatus",index);Stringreduce="function(doc,out){"+"out.taskStatus.count=out.taskStatus.count+=1;"+"out.taskStatus.inspectStatus=doc.taskStatus;"+"}";BasicDBListgroup=(BasicDBList)taskStatusService.group(newString[]{"taskStatus"},null,initial,reduce,null);this.jsonResult=group.toString();returnSUCCESS;}
返回数据:
[{"taskStatus":{"count":4.0,"taskStatus":"Finished"}},{"taskStatus":{"count":3.0,"taskStatus":"Received"}},{"taskStatus":{"count":2.0,"taskStatus":"UnReceive"}}]
上述内容就是Java中怎么实现一个Group功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。