On this page
$collStats (aggregation)
在本页面
Definition
$collStats
- 3.4 版的新功能。
返回有关集合或视图的统计信息。
$collStats
阶段具有以下原型形式:
{
$collStats:
{
latencyStats: { histograms: <boolean> },
storageStats: {},
count: {}
}
}
$collStats
阶段接受带有以下* optional *字段的自变量文档:
Field Name | Description |
---|---|
latencyStats |
将latency statistics添加到返回文档中。 |
latencyStats.histograms |
如果true ,则将延迟直方图信息添加到latencyStats 中的嵌入文档中。 |
storageStats |
将storage statistics添加到返回文档中。 |
count |
将集合中的文档总数添加到返回文档中。 |
3.6 版中的新功能。
对于副本集中的集合或群集中的non-sharded collection,$collStats
输出单个文档。对于sharded collection,$collStats
每个分片输出一个文档。输出文档包括以下字段:
Field Name | Description |
---|---|
ns |
所请求的集合或视图的namespace。 |
shard |
输出文档对应的分片名称。 |
仅当$collStats
在分片群集上运行时才存在。 分片和非分片集合都将产生此字段。
3.6 版中的新功能。
| host
|生成输出文档的 mongod 进程的主机名和端口。
3.6 版中的新功能。
| localTime
| MongoDB 服务器上的当前时间,表示自Unix epoch以来的 UTC 毫秒。
| latencyStats
|与集合或view的请求 await 时间有关的统计信息集合。有关此文档的详细信息,请参见latencyStats Document。
仅在指定latencyStats: {}
选项时存在。
| storageStats
|与集合的存储引擎有关的统计信息集合。有关此文档的详细信息,请参见storageStats Document。
仅在指定storageStats: {}
选项时存在。如果应用于view,则返回错误。
| count
|集合中的文档总数。此数据也可以在storageStats.count
中获得。
仅在指定count: {}
选项时存在。如果应用于view,则返回错误。
Behavior
$collStats
必须是聚合管道中的第一阶段,否则管道将返回错误。
latencyStats Document
如果您指定latencyStats
选项,则latencyStats
嵌入式文档仅存在于输出中。
Field Name | Description |
---|---|
reads |
读取请求的延迟统计信息。 |
writes |
写入请求的延迟统计信息。 |
commands |
数据库命令的延迟统计信息。 |
每个字段都包含一个嵌入的文档,其中包含以下字段:
Field Name | Description | |||||||
---|---|---|---|---|---|---|---|---|
latency |
long给出总的组合延迟(以微秒为单位)。 | |||||||
ops |
long给出自启动以来对集合执行的操作总数。 | |||||||
histogram |
一组嵌入式文档,每个文档代表一个 await 时间范围。每个文档覆盖先前文档范围的两倍。对于 2048 微秒到大约 1 秒之间的较高值,直方图包括半步。 | |||||||
仅提供 latencyStats: { histograms: true } 选项后,此字段才存在。输出中省略带有零count 的空范围。每个文档都包含以下字段: |
栏位名称 | 描述 |
micros |
long给出了当前 await 时间范围的上限时间(以微秒为单位)。 该文档的范围介于上一个文档的 micros 值(不包括此值)和该文档的micros 值(包括一个值)之间。 |
count |
long给出了延迟时间小于或等于micros 的操作数。 |
例如,如果 collStats 返回以下直方图: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) } |
br]
这表明有:
10 操作耗时不超过 1 微秒,
1 操作的范围为(1、2]微秒,
1 操作范围为(3072,4096]微秒,
1000 范围(12288,16384)的操作,以及
100 个操作在(32768,49152]范围内。
例如,如果您在matrices
集合上使用latencyStats: {}
选项运行$collStats
:
db.matrices.aggregate( [ { $collStats: { latencyStats: { histograms: true } } } ] )
该查询返回的结果类似于以下内容:
{ "ns" : "test.matrices",
"host" : mongo.example.net:27017",
"localTime" : ISODate("2017-10-06T19:43:56.599Z"),
"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
如果您指定storageStats
选项,则storageStats
嵌入式文档仅存在于输出中。
本文档的内容取决于使用的存储引擎。有关此文档的参考,请参见Output。
例如,如果您使用WiredTiger 存储引擎在matrices
集合上使用storageStats: {}
选项运行$collStats
:
db.matrices.aggregate( [ { $collStats: { storageStats: { } } } ] )
该查询返回的结果类似于以下内容:
{
"ns" : "test.matrices",
"host" : mongo.example.net:27017",
"localTime" : ISODate("2017-10-06T19:43:56.599Z"),
"storageStats" : {
"size" : 608500363,
"count" : 1104369,
"avgObjSize" : 550,
"storageSize" : 352878592,
"capped" : false,
"wiredTiger" : {
...
},
"nindexes" : 1,
"indexDetails" : {
...
},
"totalIndexSize" : 9891840,
"indexSizes" : {
"_id_" : 9891840
}
}
}
对view使用storageStats
选项执行$collStats
会导致错误。
count Field
3.6 版的新功能。
如果您指定count
选项,则count
字段仅存在于输出中。
例如,如果您在matrices
集合上使用count: {}
选项运行$collStats
:
db.matrices.aggregate( [ { $collStats: { count: { } } } ] )
该查询返回类似于以下内容的结果:
{
"ns" : "test.matrices",
"host" : mongo.example.net:27017",
"localTime" : ISODate("2017-10-06T19:43:56.599Z"),
"count" : 1103869
}
当指定storageStats: {}
时,集合中的文档总数也为storageStats.count
。有关更多信息,请参见storageStats Document。
$ colled 在分片集合上的状态
在sharded collections上运行时,$collStats
每个分片输出一个文档。每个输出文档都包含一个shard
字段,其中包含该文档所对应的分片的名称。
例如,如果您对分片集合运行$collStats
,而对名为matrices
的集合使用count: {}
选项:
db.matrices.aggregate( [ { $collStats: { count: { } } } ] )
该查询返回类似于以下内容的结果:
{
"ns" : "test.matrices",
"shard" : "s1",
"host" : "s1-mongo1.example.net:27017",
"localTime" : ISODate("2017-10-06T15:14:21.258Z"),
"count" : 661705
}
{
"ns" : "test.matrices",
"shard" : "s2",
"host" : "s2-mongo1.example.net:27017",
"localTime" : ISODate("2017-10-06T15:14:21.258Z"),
"count" : 442164
}
See also