Timestamp (Internal)
Last updated: 2026-10-09
Timestamp (Internal)
Timestamp is an internal MongoDB type: a 64-bit value made of a 4-byte Unix second plus a 4-byte increment. It backs the replica-set oplog, change streams, and other internals. Applications should store time points as Date. Since 4.4, Timestamps may not appear in query conditions. Construct with `Timestamp({ t: seconds, i: increment })`.
| Category | BSON Types |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
Timestamp({ t: <seconds>, i: <increment> })
Timestamp(0, 0) // shorthand
Returns:Returns a Timestamp value exposing t (seconds) and i (increment)
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// Timestamp: construct and read fields
const ts = Timestamp({ t: 1758700000, i: 1 })
print(ts.t, ts.i) // seconds and increment
Output:
1758700000 1
📌 Notes
- Store application time points as Date, not Timestamp
- Since 4.4 Timestamps are banned from query conditions
- The oplog and sharded metadata rely on Timestamp ordering
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhat is the difference between Timestamp and Date?
ADate stores a millisecond time point; Timestamp adds an increment counter and serves internal mechanisms like the oplog.
QCan applications store Timestamps?
ANot recommended — it is internal to MongoDB; store business time as Date.
QWhy does querying a Timestamp throw?
ASince 4.4, Timestamp fields are disallowed in query conditions — a breaking change; migrate to Date.