Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

shardingState

在此页面上

  • 兼容性
  • 语法
  • 行为
shardingState

shardingState是一条管理命令,用于报告 mongod是否为分分片集群的成员。 要运行该命令,必须针对admin数据库运行。 请参阅db.adminCommand()

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

该命令具有以下语法:

db.adminCommand(
{
shardingState: 1
}
)

要使 shardingState 检测到 mongod 是分片集群的成员,mongod 必需满足以下条件:

  1. mongod是副本集的主节点,并且

  2. 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),并在完成之前阻止其他操作;但是,该操作通常是短暂的。

后退

shardCollection

在此页面上