db.serverStatus()
db.serverStatus()
返回提供数据库进程状态概述的文档。
此命令对数据库命令
serverStatus
进行封装。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有MongoDB Atlas集群都支持此命令。有关Atlas支持所有命令的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
默认情况下,db.serverStatus()
在输出中排除:
repl 文档中的一些内容。
mirroredReads 文档。
要包含默认排除的字段,请在命令中指定顶层字段并将其设置为 1
。要排除默认包含的字段,请指定该字段并将其设置为 0。您可以指定顶层字段或嵌入字段。
例如,以下运算会抑制输出中的 repl
、metrics
和 locks
信息。
db.serverStatus( { repl: 0, metrics: 0, locks: 0 } )
以下示例在输出中包含了所有 repl 信息:
db.serverStatus( { repl: 1 } )
初始化
db.serverStatus()
报告的统计信息将在 mongod
服务器重启时重置。db.serverStatus()
命令只有在服务器事件初始化后才会报告某些统计信息。
例如,重启 mongod
服务器后,db.serverStatus()
不会返回 findAndModify
的任何值。
db.serverStatus().metrics.commands.findAndModify // No results returned
运行更新查询后,对 db.serverStatus()
的后续调用将显示预期指标。
{ "arrayFilters" : NumberLong(0), "failed" : NumberLong(0), "pipeline" : NumberLong(0), "total" : NumberLong(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 } )
输出
有关此函数输出的完整文档,请参阅 serverStatus 输出。