- Reference >
- Operators >
- Aggregation Pipeline Operators >
- Pipeline Aggregation Stages >
- $collStats (aggregation)
$collStats (aggregation)¶
On this page
Definition¶
-
$collStats
¶ New in version 3.4.
Returns statistics regarding a collection or view.
The
$collStats
stage has the following prototype form:{ $collStats: { latencyStats: { histograms: <boolean> }, storageStats: {} } }
All of the fields in the argument document are optional.
latencyStats
adds latency statistics to the return document.latencyStats.histograms
adds latency histogram information tolatencyStats
iftrue
.storageStats
adds storage statistics to the return document.
The return document includes the following fields:
Field Name Description ns
The namespace of the requested collection or view. localTime
The current time on the MongoDB server, expressed as UTC milliseconds since the Unix epoch. latencyStats
A collection of statistics related to request latency for a collection or view. See latencyStats Document for details on this document.
Only exists given the
latencyStats: {}
option.storageStats
A collection of statistics related to a collection’s storage engine. See storageStats Document for details on this document.
Only exists given the
storageStats: {}
option. Returns an error if applied to a view.
Behavior¶
$collStats
must be the first stage in an aggregation pipeline, or
else the pipeline returns an error.
latencyStats
Document¶
The latencyStats
embedded document only exists in the output if
$collStats
receives the latencyStats
option.
Field Name | Description |
---|---|
reads |
Latency statistics for read requests. |
writes |
Latency statistics for write requests. |
commands |
Latency statistics for database commands. |
Each of these fields contains an embedded document bearing the following fields:
Field Name | Description | ||||||
---|---|---|---|---|---|---|---|
latency |
A long giving the total combined
latency in microseconds. |
||||||
ops |
A long giving the total number of
operations performed on the collection since startup. |
||||||
histogram |
An array of embedded documents, each representing a latency range. Each document covers twice the previous document’s range. For upper values between 2048 microseconds and roughly 1 second, the histogram includes half-steps. This field only exists given the
Each document bears the following fields:
For example, if histogram: [
{ micros: NumberLong(1), count: NumberLong(10) },
{ micros: NumberLong(2), count: NumberLong(1) },
{ micros: NumberLong(4096), count: NumberLong(1) },
{ micros: NumberLong(16384), count: NumberLong(1000) },
{ micros: NumberLong(49152), count: NumberLong(100) }
]
This indicates that there were:
|
For example, if you run $collStats
with the latencyStats: {}
option
on a matrices
collection:
db.matrices.aggregate( [ { $collStats: { latencyStats: { histograms: true } } } ] )
This query will return a result similar to the following:
{ "ns" : "test.matrices",
"localTime" : ISODate("2016-10-25T21:47:54.233Z"),
"latencyStats" :
{ "reads" :
{ "histogram" : [
{ "micros" : NumberLong(16),
"count" : NumberLong(3) },
{ "micros" : NumberLong(32),
"count" : NumberLong(1) },
{ "micros" : NumberLong(128),
"count" : NumberLong(1) } ],
"latency" : NumberLong(264),
"ops" : NumberLong(5) },
"writes" :
{ "histogram" : [
{ "micros" : NumberLong(32),
"count" : NumberLong(1) },
{ "micros" : NumberLong(64),
"count" : NumberLong(3) },
{ "micros" : NumberLong(24576),
"count" : NumberLong(1) } ],
"latency" : NumberLong(27659),
"ops" : NumberLong(5) },
"commands" :
{ "histogram" : [ ],
"latency" : NumberLong(0),
"ops" : NumberLong(0) }
}
}
storageStats
Document¶
The storageStats
embedded document only exists in the output if
$collStats
receives the storageStats
option.
The contents of this document are dependent on the storage engine in use. See Output for a reference on this document.
For example, if you run $collStats
with the storageStats: {}
option on a matrices
collection using the MMAPv1 Storage Engine:
db.matrices.aggregate( [ { $collStats: { storageStats: { } } } ] )
This query will return a result similar to the following:
{
"ns" : "test.matrices",
"localTime" : ISODate("2016-10-25T19:43:56.599Z"),
"storageStats" : {
"size" : 192,
"count" : 4,
"avgObjSize" : 48,
"numExtents" : 1,
"storageSize" : 8192,
"lastExtentSize" : 8192,
"paddingFactor" : 1,
"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",
"userFlags" : 1,
"capped" : false,
"nindexes" : 1,
"indexDetails" : {
},
"totalIndexSize" : 8176,
"indexSizes" : {
"_id_" : 8176
}
}
}
Performing $collStats
with the storageStats
option on a
view results in an error.
See also