如何在 mongodb shell 中查看分片键?

Posted

技术标签:

【中文标题】如何在 mongodb shell 中查看分片键?【英文标题】:How to view sharding keys in mongodb shell? 【发布时间】:2012-04-16 05:50:06 【问题描述】:

这可能是一个虚拟问题,但我在所有在线文档中都找不到任何线索。

对于已经搭建好的 mongodb 集群,我怎样才能找到给定的collecton使用了哪个sharding key(s)

【问题讨论】:

【参考方案1】:

只需使用正常的状态命令即可。

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

在数据库部分下,您将看到完整的详细信息。

【讨论】:

【参考方案2】:

您可以登录到集群上的任何“mongos”实例(或配置服务器实例)并查询集合集合。

use config
db.collections.find()

您也可以从任何驱动程序执行此操作,因为它就像运行普通查询一样。此集合存储有关集群中所有分片集合的信息以及它们在哪些键上分片。

【讨论】:

【参考方案3】:

如Sharding Administration Docs 中所述,您可以使用db.printShardingStatus() 查看此信息。

对于分片集合,它将打印键模式。

【讨论】:

以上是关于如何在 mongodb shell 中查看分片键?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MongoDB 以编程方式预拆分基于 GUID 的分片键

默认范围分片键 mongodb

为什么散列分片键在mongodb中的每个分片上创建块

MongoDB 哈希索引

MogoDB 分片键

分片中的 InsertBatch