@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统计相关推荐

  1. Java正则表达式--Matcher.group函数的用法

    https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...

  2. java 无侵入监控_MyPerf4J 一个高性能、无侵入的Java性能监控和统计工具

    MyPerf4J 一个针对高并发.低延迟应用设计的高性能且无侵入的实时Java性能监控和统计工具. 受 perf4j 和 TProfiler启发而来. MyPerf4J具有以下几个特性: 无侵入: 采 ...

  3. java怎么快速创建监听类_java_利用java监听器实现在线人数统计,1.在工程中创建监听类SessionLi - phpStudy...

    利用java监听器实现在线人数统计 1.在工程中创建监听类SessionListener 并且实现HttpSessionListener接口,代码如下 import javax.servlet.htt ...

  4. mongoTemplate使用group函数进行分组和统计

    1 简介 在工作的过程中,使用MongoDB存储业务数据,有时候想做的不仅仅是将数据从MongoDB中提取出来,可能需要对数据进行分析并加以利用.在党费收缴模块开发过程中,需要根据党支部名称进行分组, ...

  5. java 对 mongoDB 分组统计操作 以及一些常用操作

    为什么80%的码农都做不了架构师?>>>    /*** * 功能描述:* * @author :xiaoyu 创建日期 :2014年2月19日 下午2:23:44* * @para ...

  6. Java利用TreeMap实现统计种类

    背景 有的时候需要统计一下表中某列各个种类的数量以及比例.例如:统计一个班,团员.党员.群众各有多少人.统计商品的种类,每个种类的商品有多少个. 本文提供了一种Java语言的解决方案. 代码 impo ...

  7. spark java 计数_spark程序——统计包含字符a或者b的行数

    本篇分析一个spark例子程序. 程序实现的功能是:分别统计包含字符a.b的行数. java源码如下: package sparkTest; import org.apache.spark.Spark ...

  8. java实验6 词频统计_java实训一——词频统计

    ---恢复内容开始--- 驾驶员:葛晨延(16012010) 领航员:张广哲(16012007) 码云:https://gitee.com/happywindmannn/GCYshixun1/tree ...

  9. Java案例:词频统计

    目录 一.功能需求 二.实现思路 三.实现步骤 1.创建Java项目 - Java版词频统计

最新文章

  1. 2017icpc沈阳 G Infinite Fraction Path BFS+剪枝
  2. 智能车竞赛技术报告 | 智能车视觉 - 南京邮电大学 - 栅库砸车跑路队
  3. Ubuntu 下Ape转Mp3[88250原创]
  4. boost::iostreams::example::container_device用法的测试程序
  5. mysql内连接查询原理_MySQL全面瓦解12:连接查询的原理和应用
  6. 设计师必备,设计导航网站一流设计导航|16map
  7. windows下使用vim
  8. PHP拼接唯一索引,合并两个数组数据
  9. 虎头少保,天下第一手孙禄堂【转】
  10. 【详细】小程序模板使用教程
  11. 一起找BUG,谷歌推出全新漏洞悬赏平台
  12. IMAGE_IMPORT_DESCRIPTOR
  13. GOBY--一款攻击面测绘工具的使用
  14. 二本学生四年的求职经历
  15. java第六章十七题_Java语言面试题十七
  16. numpy数据升维与降维
  17. Scratch教程——完整的跳跃
  18. 如何查看电脑的 CPU 信息 ?
  19. (十)SSL协议(待修)
  20. 3D、4D、5D区别?

热门文章

  1. 使用vue来做局部刷新
  2. WLAN高密无线网络部署的信道问题
  3. 八皇后问题 回溯方法
  4. Eclipse 应用的初步认识
  5. NHibernate 学习总结 开篇
  6. Hi3515支持NFS-ROOT启动
  7. linux之GPIO的使用
  8. zcmu 1128 (数据处理)
  9. STL之bitset
  10. 【ESSD技术解读】 云原生时代,阿里云块存储 ESSD 快照服务如何被企业级数据保护所集成?