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