MongoDB日期类型查询
一、前言
MongoDB 里面的日期类型是没有时区概念的,默认存储的是 ISODate("2018-04-02T13:19:16.418Z") 这种格式的零时区时间,比北京时间晚了八个小时。
工作中遇到了一个问题,怎么查询比当前时间小30秒之内的文档记录呢?
时区问题有关系吗?日期类型要怎么比较?怎么表示当前时间呢?日期要怎么实现加减呢?
二、方案
1、时区问题
其实时区问题并不是一个太需要关注的问题,因为MongoDB 提供了一个Javascript shell 窗口,支持 js 的语法。进行日期类型比较的时候,MongoDB 会自动处理 js 日期类型 和 MongoDB 日期类型间的时区问题。
2、怎么表示当前时间
既然我们已经有了 Javascript shell 窗口,那么表示当前时间不是一件轻而易举的事情了吗?直接一个 new Date() 就搞定了!
3、实现日期加减
有了 js 语法,日期的加减也不是特别难想了吧?
var now = new Date(); now.setTime(now.setSeconds(now.getMinutes() - 30));
4、实现查询
万事俱备,只欠东风。让我们来看看,最后的MongoDB查询是怎么样的吧?
var now = new Date(); now.setTime(now.setSeconds(now.getMinutes() - 30)); db.driverLocation.find({"uploadTime":{"$gte":now}}).sort({"uploadTime":-1});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南