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
。
警告
此命令在受影响的数据库上获取写锁,并且在完成之前将阻止其他操作;然而,该操作通常持续时间很短。