indexStats() (Index Usage Statistics)
Last updated: 2026-10-09
indexStats() (Index Usage Statistics)
indexStats() reports per-index usage statistics, e.g. `db.users.indexStats()` — access counts, hit/miss tallies, and more for each index. It helps you find never-used indexes to drop, cutting write amplification and storage. Note that counters accumulate since the server last started or the index was rebuilt.
| Category | Index & Admin |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
db.<collection>.indexStats()
Returns:Array of index stats with name, accesses, hits, misses.
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// indexStats: see how often each index is used
const stats = db.users.indexStats()
stats.forEach(s => print(s.name + ': ' + s.accesses.ops + ' ops'))
Output:
_id_: 120 ops
age_1: 45 ops
email_1: 3 ops
📌 Notes
- Consider dropping zero-access indexes to reduce write amplification
- Counters reset on server restart or index rebuild
- Requires the server's metrics collection to be enabled
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QCan indexStats reveal unused indexes?
AYes — indexes with zero or near-zero accesses.ops are rarely used and are drop candidates.
QWhen do indexStats counters start?
AThey accumulate since the server last started or the index was rebuilt.
QWhat's the benefit of dropping unused indexes?
ALess write amplification during inserts/updates and freed disk and memory.