【发布时间】:2012-04-16 05:50:06
【问题描述】:
这可能是一个虚拟问题,但我在所有在线文档中都找不到任何线索。
对于已经搭建好的 mongodb 集群,我怎样才能找到给定的collecton使用了哪个sharding key(s)?
【问题讨论】:
这可能是一个虚拟问题,但我在所有在线文档中都找不到任何线索。
对于已经搭建好的 mongodb 集群,我怎样才能找到给定的collecton使用了哪个sharding key(s)?
【问题讨论】:
只需使用正常的状态命令即可。
sh.status()
从我的 shell 复制的输出以供参考
databases:
{ "_id" : "Test1", "primary" : "atlas-<hidden>", "partitioned" : true, "version" : { "uuid" : UUID("<hidden>"), "lastMod" : 1 } }
Test1.TestCollection
shard key: { "location" : 1, "userid" : 1 }
unique: false
balancing: true
chunks:
atlas-<hidden> 172
在数据库部分下,您将看到完整的详细信息。
【讨论】:
您可以登录到集群上的任何“mongos”实例(或配置服务器实例)并查询集合集合。
use config
db.collections.find()
您也可以从任何驱动程序执行此操作,因为它就像运行普通查询一样。此集合存储有关集群中所有分片集合的信息以及它们在哪些键上分片。
【讨论】:
如Sharding Administration Docs 中所述,您可以使用db.printShardingStatus() 查看此信息。
对于分片集合,它将打印键模式。
【讨论】: