springboot使用MongoTemplate根据正则表达式查询日期数据

 一、日期正则表达式测试

  • 匹配HH:mm:ss正则表达式写法有很多列举两个

.(点)代表任意匹配

^必须以xxx开头, ^[a-z],必须以a-z的字母开头

: 精确匹配,必须是:

([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9])

^([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9])$
([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])

public class RegexDemo {public static void main(String[] args) {String str = "2023-10-10 00:00:00";String regex1 ="^\\d{4}-\\d{2}-\\d{2}.([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9])$";Pattern p = Pattern.compile(regex1);Matcher m = p.matcher(str);boolean flag = m.matches();System.out.println("yyyy-MM-dd HH:mm:ss格式正则表达式测试" + flag);String regex2 ="^\\d{4}-\\d{2}-\\d{2}.\\d{2}:\\d{2}:\\d{2}$";Pattern p2 = Pattern.compile(regex2);Matcher m2 = p2.matcher(str);boolean flag2 = m2.matches();System.out.println("yyyy-MM-dd HH:mm:ss忽略时分秒" + flag2);String regex3 ="^2023-10-10 \\d{2}:\\d{2}:\\d{2}$";Pattern p3 = Pattern.compile(regex3);Matcher m3 = p3.matcher(str);boolean flag3 = m3.matches();System.out.println("yyyy-MM-dd HH:mm:ss忽略时分秒精确匹配" + flag3);}
}

二、Mongo正则查询与条件查询对比 

    @Resourceprivate MongoTemplate mongoTemplate;@Testpublic void compareRegexToEquals() {String str ="^"+"2023-10-07"+".\\d{2}:\\d{2}:\\d{2}$";Pattern pattern = Pattern.compile(str, Pattern.CASE_INSENSITIVE);List<Map> maps = mongoTemplate.find(new Query(Criteria.where("updateTime").regex(pattern)).with(Sort.by(Sort.Order.asc("updateTime"))),Map.class, "tbopen_shop_uuid");System.out.println("正则表达式查询数据=========================" + maps.size()  );maps = maps.stream().limit(5).collect(Collectors.toList());maps.forEach(System.out::println);String startTime = "2023-10-07 00:00:00";String endTime = "2023-10-07 23:59:59";List<Map> shop = mongoTemplate.find(new Query(Criteria.where("updateTime").gte(startTime).lte(endTime)).with(Sort.by(Sort.Order.asc("updateTime"))),Map.class, "tbopen_shop_uuid");System.out.println("使用条件查询数据=========================" + shop.size());shop = maps.stream().limit(5).collect(Collectors.toList());shop.forEach(System.out::println);}

我这里这查询了一天的测试数据,比对结果后发现两种查询结果是一致的,取了前五条数据做对比,

突然发现正则还是挺牛的!

之后我们取每天的值进行字符串拼接则可以实现分组统计的需求了.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/150783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MIUI查看当前手机电池容量

MIUI查看当前手机电池容量 1. 按如下步骤操作生成bug报告 2. 按如下操作解压bug报告 Last learned battery capacity

BLE协议栈入门学习

蓝牙LE栈 物理层 频带 蓝牙LE在2400MHz到2483.5MHz范围内的2.4GHz免授权频段工作&#xff0c;该频段分为40个信道&#xff0c;每个信道间隔为2MHz。 时分 蓝牙LE是半双工的&#xff0c;可以发送和接收&#xff0c;但不能同时发送和接收&#xff0c;然而&#xff0c;所有的设…

产品经理必须知道的电商API接口对接流程注意事项

接口对接流程梳理 产品经理 知晓自己负责系统做什么&#xff0c;外接三方系统做什么。 系统对接产品经理实操步骤&#xff1a; ①与公司业务人员沟通&#xff0c;与系统对接方产品/技术描述业务场景&#xff0c;沟通发放接口文档材料 ②拿到材料之后电商API接口过多请对方…

【测试功能篇 01】Jmeter 压测接口最大并发量、吞吐量、TPS

压力测试&#xff0c;我们针对比较关键的接口&#xff0c;可以进行相应的压力测试&#xff0c;主要还是测试看看接口能抗住多少的请求数&#xff0c;TPS稳定在多少&#xff0c;也就是吞吐量多少 安装 Jmeter的安装很简单&#xff0c;官网下载地址 http://jmeter.apache.org/ &…

day30_servlet

今日内容 零、复习昨日 一、接收请求 二、处理响应 三、综合案例 零、复习昨日 画图, 请求处理的完整流程(javaweb开发流程) 零、注解改造 WebServlet注解,相当于是在web.xml中配置的servlet映射 Servlet类 package com.qf.servlet;import javax.servlet.ServletException; im…

HTML5学习系列之项目实战1

HTML5学习系列之项目实战1 前言代码记录问题总结 前言 学习记录 代码 <div id"player"><audio id"musicbox"></audio><div id"controls" class"clearfix controls"><div id"play" class"…

关于代码混淆,看这篇就够了

​ 代码混淆一.基本概念java的bytecode很容易通过JAD等反编译工具还原出源代码。这样势必不满足安全的定义。如何一定程度上保护需要防止被反编译的源代码呢&#xff1f;混淆&#xff08;obfuscate&#xff09;技术。注意&#xff1a;用obfuscate防盗版是根本不可能&#xff0c…

代码随想录算法训练营第五十八天丨 单调栈01

739. 每日温度 思路 首先想到的当然是暴力解法&#xff0c;两层for循环&#xff0c;把至少需要等待的天数就搜出来了。时间复杂度是O(n^2) 那么接下来在来看看使用单调栈的解法。 什么时候用单调栈呢&#xff1f; 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边…

MySQL 的执行原理(二)

5.3. MySQL 的查询成本 5.3. MySQL 的查询成本 MySQL 执行一个查询可以有不同的执行方案&#xff0c;它会选择其中成本最低&#xff0c;或者 说代价最低的那种方案去真正的执行查询。不过我们之前对成本的描述是非常模 糊的&#xff0c;其实在 MySQL 中一条查询语句的执行成本…

Cmake学习

cmake大致 cmake_minimum_required(VERSION 3.0)project(test) #通过set自定义变量&#xff0c;通过${}取出 #set(SRC add.cpp main.cpp muti.cpp sub.cpp) #cmake搜索文件 宏定义PROJECT_SOURCE_DIR aux_source_directory(${PROJECT_SOURCE_DIR} SRC) #file(GLOB/GLOB_RECURSE…

静态文件鉴权

​ 静态文件鉴权的解决方案 背景介绍 XX业务系统作为BXX业务系统的孪生姐妹系统&#xff0c;是对BXX受理业务的强力补充系统&#xff0c;他允许操作员拿着IPAD&#xff0c;和客户约定地点上门受理业务。 因一些业务的受理&#xff0c;按照最新的业务规章制度&#xff0c;需…

常用 API 异常

常用 API & 异常 对之前那篇 API 文章的补充学习 1.API 1.1 API概述【理解】 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&am…

OpenCV快速入门:窗口交互

文章目录 前言一、鼠标操作1.1 鼠标操作简介1.2 鼠标事件类型&#xff08;event类型&#xff09;1.3 鼠标事件标志&#xff08;flags&#xff09;1.4 代码示例1.4.1 获取鼠标坐标位置1.4.2 监听鼠标滚轮事件1.4.3 在图像中显示鼠标坐标 二、键盘操作2.1 代码示例2.2 waitKey的等…

ssm家长乐山美食网站系统

1.需求分析\n将进行家乡乐山美食网站的需求分析。需求分析是系统开发过程中的一项重要工作&#xff0c;它是对用户需求进行深入研究和分析&#xff0c;明确系统的功能、性能、界面等方面的需求&#xff0c;为后续的设计和开发提供依据。\n首先&#xff0c;需要明确该网站的主要…

制作Go程序的Docker容器(以及容器和主机的网络问题)

今天突然遇到需要将 Go 程序制作成 Docker 的需求&#xff0c;所以进行了一些研究。方法很简单&#xff0c;但是官方文档和教程有些需要注意的地方&#xff0c;所以写本文进行记录。 源程序 首先介绍一下示例程序&#xff0c;示例程序是一个 HTTP 服务器&#xff0c;会显示si…

【GUI】-- 11 贪吃蛇小游戏之绘制静态的小蛇

GUI编程 04 贪吃蛇小游戏 4.2 第二步&#xff1a;绘制静态的小蛇 现在绘制静态的小蛇(即小蛇初始位置)&#xff0c;并且完善游戏默认初始状态。这一步还在GamePanel类中实现。 首先&#xff0c;定义了小蛇的数据结构&#xff0c; //定义蛇的数据结构int length; //小蛇总长…

yolo系列模型训练数据集全流程制作方法(附数据增强代码)

yolo系列的模型在目标检测领域里面受众非常广&#xff0c;也十分流行&#xff0c;但是在使用yolo进行目标检测训练的时候&#xff0c;往往要将VOC格式的数据集转化为yolo专属的数据集&#xff0c;而yolo的训练数据集制作方法呢&#xff0c;最常见的也是有两种&#xff0c;下面我…

开源与闭源:大模型发展的双重走向

目录 前言开源和闭源的优劣势比较开源的优势闭源的优势 开源和闭源对大模型技术发展的影响对技术发展的影响对数据共享的影响对业务拓展的影响 开源与闭源的商业模式比较开源的商业模式闭源的商业模式 处在大模型洪流中&#xff0c;向何处去&#xff1f;结语 前言 随着人工智能…

中国智能音箱市场销量下降,百度稳居第一 /中国即评出10个大模型创新案例 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件&#x1f525;&#xff0c;更新AIGC的最新动态&#xff0c;生成相应的魔法简报&#xff0c;节省阅读时间&#x1f47b; 中国智能音箱市场销量下降&#xff0c;百度稳居第一 中国即将评选出10个最具代表性的大模型创新案例…

【Typroa使用】Typroa+PicGo-Core(command line)+gitee免费图片上传配置

TyproaPicGo-Core(command line)gitee免费图片上传配置 本文是在win10系统下配置typroapicGo-Core(command line)gitee图片上传的教程。需要的环境和工具有&#xff1a; gitee账号&#xff0c;新建仓库及token令牌&#xff1b;已经安装了的typroa&#xff0c;需要0.9.98版本以上…