热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mongodb查询语句时间范围_JPAquerybetween的多种方式(mongodb为例)

背景JPAMongoDB查询,给定一段时间范围查询分页结果,要求时间范围包含。PagefindByCtimeBetweenOrderByCti

背景

JPA+MongoDB查询,给定一段时间范围查询分页结果,要求时间范围包含。

Page findByCtimeBetweenOrderByCtime(LocalDateTime startTime, LocalDateTime endTime, Pageable pageable);

这时候打印的日志为:

find using query: { "ctime" : { "$gt" : { "$date" : 1605682694000 }, "$lt" : { "$date" : 1605682800000 } }

没有包含时间范围的边界,不符合要求

实现一

这个实现很骚,官网有解释:

6c3de13aad1049258dbc52511e2facc9.png


查询代码:

@Query(value = "{'ctime': {$gte : ?0, $lte : ?1}}")
Page findByCtimeBetweenOrderByCtime(LocalDateTime startTime, LocalDateTime endTime, Pageable pageable);

这时候打印的日志为:

find using query: { "ctime" : { "$gte" : { "$date" : 1605682694000 }, "$lte" : { "$date" : 1605682800000 } }

可以看到,已经包含了时间范围。

实现二

Range timeRange = Range.from(Range.Bound.inclusive(startTime)).to(Range.Bound.inclusive(endTime));
Page page = logRepository.findByCtimeBetweenOrderByCtime(timeRange, pageable);
...
Page findByCtimeBetweenOrderByCtime(Range timeRange, Pageable pageable);

这里的LocalDateTime不支持,因为LocalDateTime实现的Comparable接口中给定的范型参数不是LocalDateTime,不符合参数要求,但是换个查询类型就可以了,比如Integer此类的。

实现三

&#64;Query("select * from Log where ctime >&#61; ?0 and ctime <&#61; ?1")
Page findByCtimeBetweenOrderByCtime(LocalDateTime startTime, LocalDateTime endTime, Pageable pageable);

这种方案我个人不太喜欢&#xff0c;哈哈&#xff0c;就是想用对象&#xff0c;不想写过程查询语句。

参考

Spring DATA JPA Between and IsBetween keywords​stackoverflow.com
226f200e43678def6a3da56c02bbafaf.png
Spring Data MongoDB - Reference Documentation​docs.spring.io
63819fa2f56e7c715536e33cf63d4078.png



推荐阅读
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • MySQL 错误:检测到死锁,在尝试获取锁时;建议重启事务(Node.js 环境)
    在 Node.js 环境中,MySQL 数据库操作时遇到了“检测到死锁,在尝试获取锁时;建议重启事务”的错误。本文将探讨该错误的原因,并提供有效的解决策略,包括事务管理优化和锁机制的理解。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • 在将 MySQL 查询转换为 LINQ 时遇到了挑战,特别是在使用 Any 方法时。尽管已成功建立了连接并执行了查询,但返回的结果集中 lambda 表达式部分为空,导致无法正确映射数据。本文探讨了这一问题的根源,并提供了几种可能的解决方案,包括调整查询逻辑和优化 LINQ 表达式的建议。 ... [详细]
  • 在该项目中,参与者需结合历史使用模式和天气数据,以预测华盛顿特区自行车共享系统的租赁需求。数据分析部分首先涉及数据的收集,包括用户骑行记录和气象信息,为后续模型构建提供基础。通过深入的数据预处理和特征工程,确保数据质量和模型准确性,最终实现对自行车租赁需求的有效预测。 ... [详细]
author-avatar
无心伤害2502907297
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有