文档菜单
文档首页
/
MongoDB 手册
/ / /

collStats

在本页

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 示例
  • 输出
collStats

已弃用自版本6.2.

版本 6.2 及以后使用$collStats 聚合阶段。

collStats 命令返回给定集合的各种存储统计信息。

请使用 $collStats 聚合阶段来代替collStats 命令及其 mongosh 辅助方法 db.collection.stats()

提示

mongosh中,此命令也可以通过stats()辅助方法运行。可以使用dataSize()estimatedDocumentCount()isCapped()latencyStats()storageSize()totalIndexSize()totalSize()辅助方法访问collStats输出中的特定字段。.

辅助方法对mongosh用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便或需要额外的返回字段的情况下,请使用数据库命令。

要运行collStats,请使用db.runCommand( { <command> } )方法。

此命令在以下环境中的部署中可用

  • MongoDB Atlas:云中MongoDB部署的全托管服务

注意

此命令在所有MongoDB Atlas集群中受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。

命令具有以下语法

db.runCommand(
{
collStats: <string>,
scale: <int>
}
)

命令包含以下字段

字段
类型
描述
collStats
字符串
目标集合的名称。
缩放
整数

可选。各种大小数据的缩放因子(字段名称中指定了单位大小的情况除外)。默认值为1,以返回字节数据。要显示千字节而不是字节,请指定缩放值为1024。

如果您指定了一个非整数的缩放因子,MongoDB将使用指定因子的整数部分。例如,如果您指定了缩放因子为1023.999,MongoDB将使用1023作为缩放因子。

缩放因子将受影响的尺寸值四舍五入到整数。

当使用可查询加密时,$collStats 输出对加密集合的信息进行编辑

  • 输出省略了 "queryExecStats"

  • 输出省略了 "latencyStats"

  • 如果存在,输出编辑了 "WiredTiger",只包含 url 字段。

除非指标名称(例如 "当前缓存在中的字节数")有其他指定,与大小相关的值以字节为单位显示,并可以被 scale 覆盖。

缩放因子将受影响的尺寸值四舍五入到整数。

使用 mongodWired Tiger 存储引擎进行不干净的关闭后,大小collStats 报告的统计信息可能不准确。

漂移量取决于自上一次检查点和未清理的关机以来所执行的插入、更新或删除操作的数量。检查点通常每60秒发生一次。但是,使用非默认--syncdelay设置的mongod实例可能具有更频繁或更少的检查点。

mongod上的每个集合上运行validate,以在未清理的关机后恢复统计信息。

未清理的关机后

collStats包括正在构建的索引的信息。有关详细信息,请参阅

要在副本集成员上运行,collStats操作要求成员处于PRIMARYSECONDARY状态。如果成员处于其他状态,例如STARTUP2,则操作会出错。

如果您对一个不存在的集合运行collStats,那么根据您的数据库实现,collStats可能会在输出字段中返回0值而不是返回错误。

例如

db.runCommand( { collStats : "nonExistentCollection" } )

字段中值为0的示例输出

{
ns: 'test.nonExistentCollection',
size: 0,
count: 0,
...
}

以下操作在restaurants集合上运行collStats命令,指定缩放为1024字节

db.runCommand( { collStats : "restaurants", scale: 1024 } )

以下文档提供了collStats输出的表示。根据您集合的配置和存储引擎,输出字段可能会有所不同。

{
"ns" : <string>,
"size" : <number>,
"timeseries" : {
"bucketsNs" : <bucketName>,
"bucketCount" : <number>,
"avgBucketSize" : <number>,
"numBucketInserts" : <number>,
"numBucketUpdates" : <number>,
"numBucketsOpenedDueToMetadata" : <number>,
"numBucketsClosedDueToCount" : <number>,
"numBucketsClosedDueToSize" : <number>,
"numBucketsClosedDueToTimeForward" : <number>,
"numBucketsClosedDueToTimeBackward" : <number>,
"numBucketsClosedDueToMemoryThreshold" : <number>,
"numCommits" : <number>,
"numWaits" : <number>,
"numMeasurementsCommitted" : <number>,
"avgNumMeasurementsPerCommit": <number>
},
"count" : <number>,
"avgObjSize" : <number>,
"numOrphanDocs" : <number>, // Available starting in MongoDB 6.0
"storageSize" : <number>,
"freeStorageSize" : <number>,
"capped" : <boolean>,
"max" : <number>,
"maxSize" : <number>,
"wiredTiger" : {
"metadata" : {
"formatVersion" : <num>
},
"creationString" : <string>
"type" : <string>,
"uri" : <string>,
"LSM" : {
"bloom filter false positives" : <number>,
"bloom filter hits" : <number>,
"bloom filter misses" : <number>,
"bloom filter pages evicted from cache" : <number>,
"bloom filter pages read into cache" : <number>,
"bloom filters in the LSM tree" : <number>,
"total size of bloom filters" : <number>,
"chunks in the LSM tree" : <number>,
"highest merge generation in the LSM tree" : <number>,
"queries that could have benefited from a Bloom filter that did not exist" : <number>,
"sleep for LSM checkpoint throttle" : <number>,
"sleep for LSM merge throttle" : <number>
"total size of bloom filters" : <number>
},
"block-manager" : {
"allocations requiring file extension" : <number>,
"blocks allocated" : <number>,
"blocks freed" : <number>,
"checkpoint size" : <number>,
"file allocation unit size" : <number>,
"file bytes available for reuse" : <number>,
"file magic number" : <number>,
"file major version number" : <number>,
"file size in bytes" : <number>,
"minor version number" : <number>
},
"btree" : {
"btree checkpoint generation" : <number>,
"column-store fixed-size leaf pages" : <number>,
"column-store internal pages" : <number>,
"column-store variable-size RLE encoded values" : <number>,
"column-store variable-size deleted values" : <number>,
"column-store variable-size leaf pages" : <number>,
"fixed-record size" : <number>,
"maximum internal page key size" : <number>,
"maximum internal page size" : <number>,
"maximum leaf page key size" : <number>,
"maximum leaf page size" : <number>,
"maximum leaf page value size" : <number>,
"maximum tree depth" : <number>,
"number of key/value pairs" : <number>,
"overflow pages" : <number>,
"pages rewritten by compaction" : <number>,
"row-store empty values" : <number>,
"row-store internal pages" : <number>,
"row-store leaf pages" : <number>
},
"cache" : {
"bytes currently in the cache" : <number>,
"bytes dirty in the cache cumulative" : <number>,
"bytes read into cache" : <number>,
"bytes written from cache" : <number>,
"checkpoint blocked page eviction" : <number>,
"data source pages selected for eviction unable to be evicted" : <number>,
"eviction walk passes of a file" : <number>,
"eviction walk target pages histogram - 0-9" : <number>,
"eviction walk target pages histogram - 10-31" : <number>,
"eviction walk target pages histogram - 128 and higher" : <number>,
"eviction walk target pages histogram - 32-63" : <number>,
"eviction walk target pages histogram - 64-128" : <number>,
"eviction walks abandoned" : <number>,
"eviction walks gave up because they restarted their walk twice" : <number>,
"eviction walks gave up because they saw too many pages and found no candidates" : <number>,
"eviction walks gave up because they saw too many pages and found too few candidates" : <number>,
"eviction walks reached end of tree" : <number>,
"eviction walks started from root of tree" : <number>,
"eviction walks started from saved location in tree" : <number>,
"hazard pointer blocked page eviction" : <number>,
"in-memory page passed criteria to be split" : <number>,
"in-memory page splits" : <number>,
"internal pages evicted" : <number>,
"internal pages split during eviction" : <number>,
"leaf pages split during eviction" : <number>,
"modified pages evicted" : <number>,
"overflow pages read into cache" : <number>,
"page split during eviction deepened the tree" : <number>,
"page written requiring cache overflow records" : <number>,
"pages read into cache" : <number>,
"pages read into cache after truncate" : <number>,
"pages read into cache after truncate in prepare state" : <number>,
"pages read into cache requiring cache overflow entries" : <number>,
"pages requested from the cache" : <number>,
"pages seen by eviction walk" : <number>,
"pages written from cache" : <number>,
"pages written requiring in-memory restoration" : <number>,
"tracked dirty bytes in the cache" : <number>,
"unmodified pages evicted" : <number>
},
"cache_walk" : {
"Average difference between current eviction generation when the page was last considered" : <number>,
"Average on-disk page image size seen" : <number>,
"Average time in cache for pages that have been visited by the eviction server" : <number>,
"Average time in cache for pages that have not been visited by the eviction server" : <number>,
"Clean pages currently in cache" : <number>,
"Current eviction generation" : <number>,
"Dirty pages currently in cache" : <number>,
"Entries in the root page" : <number>,
"Internal pages currently in cache" : <number>,
"Leaf pages currently in cache" : <number>,
"Maximum difference between current eviction generation when the page was last considered" : <number>,
"Maximum page size seen" : <number>,
"Minimum on-disk page image size seen" : <number>,
"Number of pages never visited by eviction server" : <number>,
"On-disk page image sizes smaller than a single allocation unit" : <number>,
"Pages created in memory and never written" : <number>,
"Pages currently queued for eviction" : <number>,
"Pages that could not be queued for eviction" : <number>,
"Refs skipped during cache traversal" : <number>,
"Size of the root page" : <number>,
"Total number of pages currently in cache" : <number>
},
"compression" : {
"compressed page maximum internal page size prior to compression" : <number>,
"compressed page maximum leaf page size prior to compression " : <number>,
"compressed pages read" : <number>,
"compressed pages written" : <number>,
"page written failed to compress" : <number>,
"page written was too small to compress" : 1
},
"cursor" : {
"bulk loaded cursor insert calls" : <number>,
"cache cursors reuse count" : <number>,
"close calls that result in cache" : <number>,
"create calls" : <number>,
"insert calls" : <number>,
"insert key and value bytes" : <number>,
"modify" : <number>,
"modify key and value bytes affected" : <number>,
"modify value bytes modified" : <number>,
"next calls" : <number>,
"open cursor count" : <number>,
"operation restarted" : <number>,
"prev calls" : <number>,
"remove calls" : <number>,
"remove key bytes removed" : <number>,
"reserve calls" : <number>,
"reset calls" : <number>,
"search calls" : <number>,
"search near calls" : <number>,
"truncate calls" : <number>,
"update calls" : <number>,
"update key and value bytes" : <number>,
"update value size change" : <num>
},
"reconciliation" : {
"dictionary matches" : <number>,
"fast-path pages deleted" : <number>,
"internal page key bytes discarded using suffix compression" : <number>,
"internal page multi-block writes" : <number>,
"internal-page overflow keys" : <number>,
"leaf page key bytes discarded using prefix compression" : <number>,
"leaf page multi-block writes" : <number>,
"leaf-page overflow keys" : <number>,
"maximum blocks required for a page" : <number>,
"overflow values written" : <number>,
"page checksum matches" : <number>,
"page reconciliation calls" : <number>,
"page reconciliation calls for eviction" : <number>,
"pages deleted" : <number>
},
"session" : {
"object compaction" : <number>,
},
"transaction" : {
"update conflicts" : <number>
}
},
"nindexes" : <number>,
"indexDetails" : {
"_id_" : {
"metadata" : {
"formatVersion" : <number>
},
...
},
...
},
"indexBuilds" : [
<string>,
],
"totalIndexSize" : <number>,
"totalSize" : <number>,
"indexSizes" : {
"_id_" : <number>,
"<indexName>" : <number>,
...
},
"scaleFactor" : <number>
"ok" : <number>
}
collStats.ns

当前集合的命名空间,格式为 [数据库名].[集合名]

collStats.size

集合中所有记录在内存中的未压缩总大小。该 size 不包括与集合关联的任何索引的大小,这些大小由 totalIndexSize 字段报告。

scale 参数会影响此值。数据压缩不会影响此值。

collStats.timeseries

当在 时间序列集合 上运行 collStats 命令时会出现 timeseries

本文档包含内部诊断使用的数据。

collStats.count

此集合中对象的或文档的数量。

collStats.avgObjSize

集合中对象的平均大小。参数 scale 不影响此值。

collStats.numOrphanDocs

集合中孤儿文档的数量。

新增版本6.0.

collStats.storageSize

为该集合分配的文档存储总空间量。scale 参数会影响此值。

如果集合数据被压缩(默认为 WiredTiger),则存储大小反映压缩大小,可能小于 collStats.size 的值。

storageSize 不包括索引大小。有关索引大小,请参阅 totalIndexSize

collStats.freeStorageSize

内存存储引擎不可用

可用于重新使用的存储空间量。scale 参数会影响此值。

该字段仅在存储可用于重新使用(即大于零)时才可用。

collStats.nindexes

集合上的索引数量。所有集合至少都有一个索引在 _id 字段上。

nindexes 包含正在构建的索引的数量。

collStats.indexDetails

一个文档,报告集合中每个索引的 WiredTiger 存储引擎的数据。其他存储引擎将返回一个空文档。

此文档中的字段是索引的名称,而值本身是包含存储引擎提供的索引统计信息的文档。这些统计信息仅用于内部诊断。

indexDetails 包含正在构建的索引的详细信息。

collStats.indexBuilds

一个数组,包含正在集合上构建的索引的名称。一旦索引构建完成,该索引将不会出现在 indexBuilds 中。

collStats.totalIndexSize

所有索引使用的磁盘空间总和。参数 scale 影响此值。

如果索引使用前缀压缩(这是 WiredTiger 的默认设置),则返回的大小反映计算总和时此类索引的压缩大小。

totalIndexSize 包括正在构建的总大小中的索引。

collStats.totalSize

storageSizetotalIndexSize 的总和。参数 scale 影响此值。

collStats.indexSizes

该字段指定了集合中每个现有索引的键和大小。参数scale影响此值。

如果索引使用前缀压缩(这是WiredTiger的默认设置),则返回的大小反映了压缩后的大小。

indexSizes包括正在构建的索引的大小。

collStats.scaleFactor

该命令使用的scale值。

如果您指定了非整数的缩放因子,MongoDB将使用指定因子的整数部分。例如,如果您指定缩放因子为1023.999,MongoDB将使用1023作为缩放因子。

collStats.capped

如果集合是固定大小的,则该字段将为"true"。

collStats.max

显示可能存在于固定集合中的最大文档数量。

collStats.maxSize

显示固定集合的最大大小。

collStats.wiredTiger

wiredTiger仅在使用WiredTiger存储引擎时出现。当使用可查询加密时,WiredTiger数据将被编辑,只保留url字段。

本文档包含直接由WiredTiger引擎报告的数据以及其他用于内部诊断的数据。

collStats.inMemory

inMemory 仅在使用内存存储引擎时出现。

本文档包含存储引擎直接报告的数据以及其他用于内部诊断的数据。

返回

buildInfo