java mongoTemplate的group统计
@Service public class MongoCountServiceImpl implements MongoCountService {@Autowiredprivate MongoTemplate mongoTemplate;@Overridepublic List<MongoCountDTO> count(String docName, String groupFeild, Query queryCondition) {//定义统计返回字段:默认添加以...分组的字段groupFeild、下面定义的countString reduce = "function(doc, aggr){" +" aggr.count += 1;" +" }";DBObject result = mongoTemplate.getCollection(docName).group(new BasicDBObject(groupFeild, 1),queryCondition.getQueryObject(),new BasicDBObject("count", 0),reduce);List<Map> list = (List) JSON.toJSON(result);List<MongoCountDTO> countList = new ArrayList<>();//组装全部long all = 0;if(CollectionUtils.isNotEmpty(list)) {for (Map o : list) {long cou = ((Double) o.get("count")).longValue();MongoCountDTO count = new MongoCountDTO((String) o.get(groupFeild), cou);countList.add(count);all = all + cou;}}MongoCountDTO allCount = new MongoCountDTO("全部", all);countList.add(0, allCount);return countList;} }
如果想要返回多个字段值:
String reduce = "function(doc, aggr){" +" aggr.count += 1;" +" aggr.province = doc.insure_province;" +//这里是想返回的字段:自定义字段=mongo里doc的字段" }";Query queryCondition = new Query();DBObject result = mongoTemplate.getCollection("policy").group(new BasicDBObject("vehicle_type_no", 1),queryCondition.getQueryObject(),new BasicDBObject("count", 0),reduce);List<Map> list = (List) JSON.toJSON(result);
转载于:https://www.cnblogs.com/yangzhenlong/p/7054207.html
java mongoTemplate的group统计相关推荐
- Java正则表达式--Matcher.group函数的用法
https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...
- java 无侵入监控_MyPerf4J 一个高性能、无侵入的Java性能监控和统计工具
MyPerf4J 一个针对高并发.低延迟应用设计的高性能且无侵入的实时Java性能监控和统计工具. 受 perf4j 和 TProfiler启发而来. MyPerf4J具有以下几个特性: 无侵入: 采 ...
- java怎么快速创建监听类_java_利用java监听器实现在线人数统计,1.在工程中创建监听类SessionLi - phpStudy...
利用java监听器实现在线人数统计 1.在工程中创建监听类SessionListener 并且实现HttpSessionListener接口,代码如下 import javax.servlet.htt ...
- mongoTemplate使用group函数进行分组和统计
1 简介 在工作的过程中,使用MongoDB存储业务数据,有时候想做的不仅仅是将数据从MongoDB中提取出来,可能需要对数据进行分析并加以利用.在党费收缴模块开发过程中,需要根据党支部名称进行分组, ...
- java 对 mongoDB 分组统计操作 以及一些常用操作
为什么80%的码农都做不了架构师?>>> /*** * 功能描述:* * @author :xiaoyu 创建日期 :2014年2月19日 下午2:23:44* * @para ...
- Java利用TreeMap实现统计种类
背景 有的时候需要统计一下表中某列各个种类的数量以及比例.例如:统计一个班,团员.党员.群众各有多少人.统计商品的种类,每个种类的商品有多少个. 本文提供了一种Java语言的解决方案. 代码 impo ...
- spark java 计数_spark程序——统计包含字符a或者b的行数
本篇分析一个spark例子程序. 程序实现的功能是:分别统计包含字符a.b的行数. java源码如下: package sparkTest; import org.apache.spark.Spark ...
- java实验6 词频统计_java实训一——词频统计
---恢复内容开始--- 驾驶员:葛晨延(16012010) 领航员:张广哲(16012007) 码云:https://gitee.com/happywindmannn/GCYshixun1/tree ...
- Java案例:词频统计
目录 一.功能需求 二.实现思路 三.实现步骤 1.创建Java项目 - Java版词频统计
最新文章
- 2017icpc沈阳 G Infinite Fraction Path BFS+剪枝
- 智能车竞赛技术报告 | 智能车视觉 - 南京邮电大学 - 栅库砸车跑路队
- Ubuntu 下Ape转Mp3[88250原创]
- boost::iostreams::example::container_device用法的测试程序
- mysql内连接查询原理_MySQL全面瓦解12:连接查询的原理和应用
- 设计师必备,设计导航网站一流设计导航|16map
- windows下使用vim
- PHP拼接唯一索引,合并两个数组数据
- 虎头少保,天下第一手孙禄堂【转】
- 【详细】小程序模板使用教程
- 一起找BUG,谷歌推出全新漏洞悬赏平台
- IMAGE_IMPORT_DESCRIPTOR
- GOBY--一款攻击面测绘工具的使用
- 二本学生四年的求职经历
- java第六章十七题_Java语言面试题十七
- numpy数据升维与降维
- Scratch教程——完整的跳跃
- 如何查看电脑的 CPU 信息 ?
- (十)SSL协议(待修)
- 3D、4D、5D区别?