db.serverStatus()返回一份概述数据库进程状态的文档。
此命令对数据库命令
serverStatus进行封装。
兼容性
此方法可用于以下环境中托管的部署:
- MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
M0 和 Flex 集群不支持此命令。有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
By default, db.serverStatus() excludes in its output:
repl 文档中的一些内容。
mirroredReads 文档。
要包含默认排除的字段,请在命令中指定顶层字段并将其设置为 1。要排除默认包含的字段,请指定该字段并将其设置为 0。您可以指定顶层字段或嵌入字段。
例如,以下运算会抑制输出中的 repl、metrics 和 locks 信息。
db.serverStatus( { repl: 0, metrics: 0, locks: 0 } )
以下示例在输出中包含了所有 repl 信息:
db.serverStatus( { repl: 1 } )
排除所有可选字段
从MongoDB 7.0.38 开始,您可以通过指定 none: 1 从 db.serverStatus() 输出中排除所有可选字段。排除所有可选字段后,您可以指定要包含的字段。
此示例使用 none 最初从输出中排除所有可选字段,然后包含 locks文档。
db.serverStatus({ none: 1, locks: 1 })
初始化
The statistics reported by db.serverStatus() are reset when the mongod server is restarted. The db.serverStatus() command does not report some statistics until they have been initialized by server events.
For example, after restarting the mongod server, db.serverStatus() won't return any values for findAndModify.
db.serverStatus().metrics.commands.findAndModify // No results returned
After you run an update query, subsequent calls to db.serverStatus() display the expected metrics.
{ "arrayFilters" : Long(0), "failed" : Long(0), "pipeline" : Long(0), "total" : Long(1) }
注意
如果在计数器开始递增之前查询特定对象,则 db.serverStatus() 方法会返回错误。
如果尚未进行任何文档更新:
db.serverStatus().metrics.commands.update.pipeline
返回:
TypeError: db.serverStatus(...).metrics.commands.update is undefined : @(shell):1:1
包括 mirroredReads
默认情况下,输出中不包含 mirroredReads 信息。要返回 mirroredReads 信息,必须明确指定包含的内容:
db.serverStatus( { mirroredReads: 1 } )
包括 latchAnalysis
默认情况下,输出中不包含 latchAnalysis 信息(从 4.4 版开始提供)。要返回 latchAnalysis 信息,必须明确指定包含的内容:
db.serverStatus( { latchAnalysis: 1 } )
输出
有关此函数输出的完整文档,请参阅 serverStatus 输出。