Timestamp(时间戳)
最后更新:2026-10-09
Timestamp(时间戳)
Timestamp是MongoDB内部类型,64位值由4字节Unix秒+4字节自增序号组成,主要用于复制集操作日志(oplog)与变更流等内部机制。业务存储时间点应用Date类型。注意:自4.4起Timestamp不允许出现在查询条件中。构造用`Timestamp({ t: 秒, i: 序号 })`。
| 分类 | BSON 类型 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
Timestamp({ t: <秒>, i: <序号> })
Timestamp(0, 0) // 等价简写
返回值:返回一个Timestamp类型值,含t(秒)与i(序号)两个属性
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// Timestamp:构造并读取字段
const ts = Timestamp({ t: 1758700000, i: 1 })
print(ts.t, ts.i) // 秒与序号
运行结果:
1758700000 1
📌 注意事项
- 业务时间点用Date,不要用Timestamp
- 4.4起Timestamp不允许出现在查询条件中
- oplog与分片元数据依赖Timestamp保证顺序
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QTimestamp和Date有什么区别?
ADate存毫秒时间点;Timestamp含自增序号,用于oplog等内部机制。
Q业务能存Timestamp吗?
A不建议。它是MongoDB内部专用类型,业务时间点一律用Date。
Q为什么查询Timestamp报错?
A4.4起查询条件中禁止使用Timestamp字段,属于破坏性变更,需改用Date。