Date(日期时间)
最后更新:2026-10-09
Date(日期时间)
Date 是 MongoDB 的日期时间类型,内部以 64 位整数存储毫秒数(自 Unix epoch 起)。支持 ISO 日期字符串(new Date("2026-09-25"))和毫秒时间戳两种构造方式。日期在查询中用 $gt/$lt 等比较操作符做范围过滤。
| 分类 | BSON 类型 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
new Date("<ISO 字符串>")
new Date(<毫秒时间戳>)
ISODate("<ISO 字符串>")
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// Date:查询今天以后的订单
db.orders.find({
createdAt: { $gte: new Date("2026-09-25T00:00:00Z") }
})
运行结果:
// 返回 createdAt >= 2026-09-25 00:00 UTC 的文档
📌 注意事项
- 存的是 UTC 毫秒;显示时按客户端时区转换
- Date 与字符串不同:"2026-09-25" 是字符串,new Date("2026-09-25") 才是日期
- 范围查询用 $gte/$lt(半开区间写法)
- 聚合中可用 $dateToString 格式化输出
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
QDate 和 Timestamp 有什么区别?
ADate 存毫秒级时间点;Timestamp 用于内部复制集操作日志(含递增序号),一般业务不用 Timestamp。
Q怎么存时间戳(毫秒数)?
A用new Date(毫秒数)构造Date存储,不要存成数字字段。
Q日期查询用字符串可以吗?
A不建议。字符串与Date类型不同,$gt/$lt比较会不匹配,应统一存Date再查询。