shardingState
shardingState
shardingState
是一条管理命令,用于报告mongod
是否为分分片集群的成员。 要运行该命令,必须针对admin
数据库运行。 请参阅db.adminCommand()
。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有MongoDB Atlas集群都支持此命令。有关Atlas支持所有命令的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法:
db.adminCommand( { shardingState: 1 } )
行为
要使 shardingState
检测到 mongod
是分片集群的成员,mongod
必需满足以下条件:
如果 shardingState
检测到 mongod
是分片集群的成员,shardingState
将返回类似于以下原型的文档:
{ "enabled" : true, "configServer" : "<configdb-string>", "shardName" : "<string>", "shardHost" : "string:", "versions" : { "<database>.<collection>" : { "placementVersion": Timestamp({ t: 1, i: 1024 }), "timestamp": Timestamp({ t: 1682444810, i: 8 }) }, "<database>.<collection>" : { "placementVersion": Timestamp({ t: 0, i: 0 }), "timestamp": Timestamp({ t: 0, i: 0 }) } }, "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp({ t: 1682457265, i: 1 }), "signature" : { "hash" : BinData(0,"B2ViX7XLzFLS5Fl9XEuFXbwKIM4="), "keyId" : NumberLong("6488045157173166092") } }, "operationTime" : Timestamp({ t: 1682457260, i: 1 }) }
否则,shardingState
将返回以下文档:
{ "enabled" : false, "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp({t:1510716515, i: 1}), "signature" : { "hash" : BinData(0,"B2ViX7XLzFLS5Fl9XEuFXbwKIM4="), "keyId" : NumberLong("6488045157173166092") } }, "operationTime" : Timestamp({t: 1510716515, i: 1}) }
shardingState
与配置服务器一起使用时的响应是:
{ "enabled" : false, "ok" : 1, "operationTime" : Timestamp({t: 1510767613, i: 1}), "$gleStats" : { "lastOpTime" : Timestamp({t: 0, i: 0}), "electionId" : ObjectId("7fffffff0000000000000001") }, "$clusterTime" : { "clusterTime" : Timestamp({t: 1510767613, i: 1}), "signature" : { "hash" : BinData(0,"IwBZ4SZjIMI5NdM62NObV/R31GM="), "keyId" : NumberLong("6488693018630029321") } } }
注意
mongos
实例不提供 shardingState
。
警告
此命令在受影响的数据库上获得写锁(write lock),并在完成之前阻止其他操作;但是,该操作通常是短暂的。