- Reference >
- Operators >
- Aggregation Pipeline Stages >
- $indexStats (aggregation)
$indexStats (aggregation)¶
On this page
Definition¶
-
$indexStats¶ New in version 3.2.
Returns statistics regarding the use of each index for the collection. If running with access control, the user must have privileges that include
indexStatsaction.The
$indexStatsstage takes an empty document and has the following syntax:For each index, the return document includes the following fields:
Output Field Description nameIndex name. key Index key specification.
See also: spec.
host The hostname and port of the
mongodprocess.accesses Statistics on the index use:
opsis the number of operations that used the index.sinceis the time from which MongoDB gathered the statistics.
shard The name of the shard associated with the host
Only available for a sharded cluster.
New in version 4.2.4.
spec The full specfication document for the index, which includes the index key specification document.
The index option
hidden, available starting in MongoDB 4.4, is only included if the value istrue.New in version 4.2.4.
building Indicates if the index is currently being built.
Only available if
true.New in version 4.2.4.
Statistics for an index will be reset on
mongodrestart or index drop and recreation.
Behavior¶
Accesses Field¶
The statistics reported by the accesses field only includes index access driven by user requests. It does not include internal operations like deletion via TTL Indexes or chunk split and migration operations.
Restrictions¶
$indexStatsmust be the first stage in an aggregation pipeline.$indexStatsis not allowed in transactions.
Example¶
For example, a collection orders contains the following documents:
Create the following two indexes on the collection:
Run some queries against the collection:
To view statistics on the index use on the orders collection,
run the following aggregation operation:
The operation returns a document that contains usage statistics for each index: