Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.stats()

在此页面上

  • 说明
  • 兼容性
  • 行为
  • 示例
db.stats(scale)

返回反映单个数据库使用状态的统计信息。

db.stats() 方法是 dbStats 数据库命令的包装器。

此方法可用于以下环境中托管的部署:

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

重要

此命令在 M 0 、 M 2和 M 5集群中提供有限支持。 有关更多信息,请参阅不支持的命令。

db.stats() 方法具有以下可选参数:

Parameter
类型
说明
数字

可选。各种大小数据的比例因子。scale 默认为 1,以字节为单位返回大小数据。要显示千字节而不是字节,请指定 1024scale 值。

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

从版本 4.2 开始,输出包括用于缩放大小值的 scaleFactor

数字

可选。要返回分配给集合的可用空间信息,请将 freeStorage 设置为 1。

如果该实例有大量集合或索引,获取可用空间使用情况数据可能会导致处理延迟。要收集不含可用空间详细信息的 db.stats() 数据,请将 freeStorage 设为 0 或去除该参数。

db.stats() 方法返回包含数据库系统状态统计信息的文档。包括 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 })
}

有关输出的解释,请参阅输出。

使用 Wired Tiger 存储引擎非正常关闭 mongod 后,db.stats() 报告的计数和大小统计数据可能不准确。

偏差的大小取决于在最后一个检查点和非正常关闭之间执行的插入、更新或删除操作的次数。检查点通常每 60 秒出现一次。但是,如果 mongod 实例使用了非默认的 --syncdelay 设置,则检查点出现的次数可能会增多或减少。

mongod 的每个集合上运行 validate,以在非正常关闭之后恢复统计信息。

非正常关闭后:

要在副本集成员上运行,dbStats 操作需要成员处于 PRIMARYSECONDARY 状态。如果节点处于其他状态,如 STARTUP2,则操作错误。

要以千字节为单位返回值,请将扩展位数设立为1024

db.stats(1024)

注意

该比例因子会将值四舍五入为整数。

要返回单个值(如 indexSize),请将字段名附加到 db.stats() 后面。

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

输出显示原始值和缩放值的差值。

118784
116

要返回分配给集合的可用空间信息,请将 freeStorage 参数传递给 db.stats()

以下示例返回以 KB 为单位的 indexFreeStorageSize

db.stats( { freeStorage: 1, scale: 1024 } ).indexFreeStorageSize

后退

db.shutdownServer