mongoTemplate聚合统计字段类型为字符串的数据,根据时间日期月份进行统计,日期也为字符串
时间:2021-08-28
本文章向大家介绍mongoTemplate聚合统计字段类型为字符串的数据,根据时间日期月份进行统计,日期也为字符串,主要包括mongoTemplate聚合统计字段类型为字符串的数据,根据时间日期月份进行统计,日期也为字符串使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 @RestController 2 @RequestMapping("test") 3 public class MongoStringSum { 4 @Autowired 5 private MongoTemplate mongoTemplate; 6 /** 7 * @Author: lpj 8 * @Date: 2021/8/28 20:37 9 * mongoDB统计字符串类型的数据和,以月份进行分组统计,且时间为字符串类型 10 */ 11 @GetMapping 12 public List<JSONObject> test() { 13 Criteria criteria = new Criteria(); 14 String tableName="你要统计的表名"; 15 String name = "name";//名称列明 16 String date = "date";//日期列明 17 String score = "score";//分值列明 18 //其中日期的数据格式为字符串类型"2021-08-27 11:11:11" 19 //要统计的分值列数据为字符串类型"99.9","99.8" 20 Aggregation banciAggregation = Aggregation.newAggregation( 21 match(Criteria.where(name).is("张三")),//统计名称为**的数据 22 //根据日期进行统计,日期为字符串数据,需特殊处理,这里是根据月份进行分组统计,截取日期字符串0-7则就为月份 23 Aggregation.project(date).andExpression(date).substring(0, 7).as("times") 24 //因为Mongo不能直接统计字符串求和操作,则对该字段的数据进行类型转换,转换为doubbo进行统计 25 .and(ConvertOperators.Convert.convertValueOf(score).to("double").onErrorReturn(0).onNullReturn(0)).as("class"), 26 //根据处理后的时间进行分组,对处理后的要统计的字段数据进行求和 27 Aggregation.group("times").sum("class").as("countSum")); 28 29 AggregationResults<JSONObject> banciAggregate = mongoTemplate.aggregate(banciAggregation, tableName, JSONObject.class); 30 List<JSONObject> results = banciAggregate.getMappedResults();//统计完成的数据就在该集合中,我们取出即可使用 31 return results; 32 } 33 34 }
原文地址:https://www.cnblogs.com/859630097com/p/15201108.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- IDEA 真香!找出全部未被使用的代码只用了 2 秒钟!
- ArrayList 插入 1000w 条数据之后,我怀疑了 Java 虚拟机。。。
- 本地存储应用案例 ToDoList
- jQuery 插件
- 本周AI热点回顾:RTX3080被黄牛炒上天;百度资本助力AI 制药,已有十几位博士加入;百度联手打造AI沉浸互动展中国首秀
- 线段树
- 乘法表中第k小的数
- 数据可视化 | Pandas vs Plotnine
- laravel里使用chunk的一个坑
- 一个小小的签到功能,到底用 MySQL 还是 Redis ? ?
- 下载丨9月数据库技术通讯:Redo日志丢失,重建遭遇ORA-16433处理
- knative serving 组件分析
- 在 minikube 上部署 knative
- 认识 JS 静态类型检查工具 Flow
- PostgreSQL中如何实现密码复杂度检查?