定义
db.collection.getShardLocation()
8.1版本新增。
返回包含集合所在分片的文档,以及集合是否已分片的。
重要
mongosh 方法
本页介绍了
mongosh
方法。这不是数据库命令或特定于语言的驱动程序的文档。getShardLocation()
方法是$listClusterCatalog
聚合阶段的包装器。
输出
getShardLocation()
方法返回包含以下字段的文档:
字段 | 类型 | 说明 |
---|---|---|
| 阵列 | 集合数据所在的分片。 |
| 布尔 | 指示集合是否分片的。 |
如果在未分片部署上运行该方法:
shards
大量为空。sharded
字段为false
。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
M0 和 Flex 集群不支持此命令。有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
db.<collection>.getShardLocation()
示例
分片集合
以下示例显示了包含 sample_mflix.movies
集合中的数据的分片:
use sample_mflix db.movies.getShardLocation()
{ shards: [ 'shard01', 'shard02' ], sharded: true }
分片集群上的未分片集合
如果您在分片集群上运行该命令,但集合未分片的,则 sharded
字段为 false
,且 shards
大量仅包含 config
分片:
use sample_mflix db.movies.getShardLocation()
{ shards: [ 'config' ], sharded: false }
非分片部署
如果在未分片部署上运行该命令,则 sharded
字段为 false
,shards
大量为空:
use sample_mflix db.movies.getShardLocation()
{ shards: [], sharded: false }