mongoTemplate聚合统计字段类型为字符串的数据,根据时间日期月份进行统计,日期也为字符串
2021/8/28 23:09:19
本文主要是介绍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 }
这篇关于mongoTemplate聚合统计字段类型为字符串的数据,根据时间日期月份进行统计,日期也为字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23MongoDB身份认证机制揭秘!
- 2024-11-20MongoDB教程:从入门到实践详解
- 2024-11-17执行 Google Ads API 查询后返回的是空数组什么原因?-icode9专业技术文章分享
- 2024-11-17google广告数据不同经理账户下的凭证可以获取对方的api数据吗?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用