$millisecond (Get Millisecond)
Last updated: 2026-10-09
$millisecond (Get Millisecond)
$millisecond returns the millisecond part of a date (0 to 999) — a fine-grained time extractor. Seldom used alone, it helps with precise ordering, deduplication, or rebuilding millisecond timestamps. It returns an integer without zero padding. timezone has no effect on the value (milliseconds are zone-independent) but is still accepted syntactically. Pair it with $second for millisecond-level labels.
| Category | Date |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $millisecond: { date: <date-expression>, timezone: <timezone> } }
⚙️ Parameters
| date | Required; the date expression. |
|---|---|
| timezone | Optional; does not affect the millisecond value. |
Returns:The millisecond (0-999); null if date is null.
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $millisecond: milliseconds of sensor timestamps
db.sensors.aggregate([
{ $project: { ms: { $millisecond: '$ts' } } }
])
Output:
{ "_id": 1, "ms": 320 }
{ "_id": 2, "ms": 0 }
📌 Notes
- Range 0-999 without zero padding
- Milliseconds are zone-independent; timezone changes nothing
- Combine with $second for millisecond-level labels
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhat is the range?
A0 to 999.
QDoes timezone affect milliseconds?
ANo — milliseconds are a pure time quantity, zone-independent.
QHow to format a three-digit millisecond?
AIt returns a raw integer; pad with $concat when needed.