db.stats()

On this page本页内容

Description描述

db.stats(scale)

Returns statistics that reflect the use state of a single database.返回反映单个数据库使用状态的统计信息。

The db.stats() method is a wrapper around the dbStats database command.db.stats()方法是dbStats数据库命令的包装器。

Parameters参数

The db.stats() method has the following optional parameters:db.stats()方法具有以下可选参数:

Parameter参数Type类型Description描述
scalenumber

Optional. 可选。The scale factor for the various size data. 各种尺寸数据的比例因子。The scale defaults to 1 to return size data in bytes. scale默认为1,以字节为单位返回大小数据。To display kilobytes rather than bytes, specify a scale value of 1024.要显示千字节而不是字节,请指定1024scale

If you specify a non-integer scale factor, MongoDB uses the integer part of the specified factor. 如果指定非整数比例因子,MongoDB将使用指定因子的整数部分。For example, if you specify a scale factor of 1023.999, MongoDB uses 1023 as the scale factor.例如,如果指定比例因子1023.999,MongoDB将使用1023作为比例因子。

Starting in version 4.2, the output includes the scaleFactor used to scale the size values.从版本4.2开始,输出包括用于缩放大小值的scaleFactor

freeStoragenumber

Optional. 可选。To return information on free space allocated to collections, set freeStorage to 1.要返回有关分配给集合的可用空间的信息,请将freeStorage设置为1

If the instance has a large number of collections or indexes, obtaining free space usage data may cause processing delays. 如果实例有大量集合或索引,则获取可用空间使用数据可能会导致处理延迟。To gather db.stats() data without free space details, either set freeStorage to 0 or do not include the parameter.要集合没有可用空间详细信息的db.stats()数据,请将freeStorage设置为0或不包括该参数。

Output输出

The db.stats() method returns a document with statistics about the database system's state. db.stats()方法返回一个包含数据库系统状态统计信息的文档A complete listing, including freeStorage details, resembles the following:包括freeStorage详细信息在内的完整列表如下所示:

{
  db: 'test',
  collections: 2,
  views: 0,
  objects: 1689,
  avgObjSize: 52.56542332741267,
  dataSize: 86.7021484375,
  storageSize: 100,
  freeStorageSize: 32,
  indexes: 2,
  indexSize: 116,
  indexFreeStorageSize: 36,
  totalSize: 216,
  totalFreeStorageSize: 68,
  scaleFactor: 1024,
  fsUsedSize: 60155820,
  fsTotalSize: 61255492,
  ok: 1,
  '$clusterTime': {
    clusterTime: Timestamp({ t: 1646085664, i: 1 }),
    signature: {
      hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0),
      keyId: Long("0")
    }
  },
  operationTime: Timestamp({ t: 1646085664, i: 1 })
}

For an explanation of the output, see Output.有关输出的说明,请参阅输出

Behavior行为

Accuracy after Unexpected Shutdown意外停机后的精确度

After an unclean shutdown of a mongod using the Wired Tiger storage engine, count and size statistics reported by db.stats() may be inaccurate.在使用Wired Tiger存储引擎不干净地关闭mongod之后,db.stats()报告的计数和大小统计可能不准确。

The amount of drift depends on the number of insert, update, or delete operations performed between the last checkpoint and the unclean shutdown. 漂移量取决于在最后一个检查点和不干净关闭之间执行的插入、更新或删除操作的数量。Checkpoints usually occur every 60 seconds. 检查点通常每60秒进行一次。However, mongod instances running with non-default --syncdelay settings may have more or less frequent checkpoints.然而,使用非默认的--syncdelay设置运行的mongod实例可能有或多或少的检查点。

Run validate on each collection on the mongod to restore statistics after an unclean shutdown.mongod上的每个集合上运行validate,以在非干净关闭后恢复统计信息。

After an unclean shutdown:非清洁停机后:

Replica Set Member State Restriction副本集成员状态限制

Starting in MongoDB 4.4, to run on a replica set member, dbStats operations require the member to be in PRIMARY or SECONDARY state. 从MongoDB 4.4开始,要在副本集成员上运行,dbStats操作要求该成员处于PRIMARYSECONDARY状态。If the member is in another state, such as STARTUP2, the operation errors.如果成员处于其他状态,如STARTUP2,则操作出错。

In previous versions, the operations can also be run when the member is in STARTUP2. 在以前的版本中,也可以在成员处于STARTUP2时运行操作。However, the operations wait until the member transitions to RECOVERING.但是,这些操作将一直等到成员转换到RECOVERING

Examples示例

Scale Output Values缩放输出值

To to return values in kilobytes, set the scale to 1024:要返回以KB为单位的值,请将scale设置为1024

db.stats(1024)
Note注意

The scale factor rounds values to whole numbers.比例因子将值舍入为整数。

Return a Single Value返回单个值

To return a single value, such as indexSize, append the field name to db.stats().要返回单个值,例如indexSize,请将字段名附加到db.stats()

db.stats().indexSize
db.stats(1024).indexSize

The output shows the difference between the original and scaled values.输出显示原始值和缩放值之间的差异。

118784
116

Return Information on Free Space Allocated to Collections返回分配给集合的可用空间信息

To return information on free space allocated to collections, pass the freeStorage parameter to db.stats().要返回有关分配给集合的可用空间的信息,请将freeStorage参数传递给db.stats()

The following example returns the indexFreeStorageSize in kilobytes:以下示例以KB为单位返回indexFreeStorageSize

db.stats( { freeStorage: 1, scale: 1024 } ).indexFreeStorageSize
←  db.shutdownServer()db.version() →