$shardedDataDistribution阶段是从6.0.3开始支持的,用于返回分片集合中数据分布的信息。该聚合阶段必须在admin数据库上运行,且用户必须拥有shardedDataDistribution操作权限。
语法
db.aggregate( [{ $shardedDataDistribution: { } }
] )
用法
$shardedDataDistribution阶段会为数据库中的每个分片集合输出一个文档数组。这些文档包含以下字段:
|字段名|字段类型|说明|
 |-|-|
 |ns|string|分片集合的命名空间|
 |shards|每个集合中的分区和数据的分布信息|
 |shards.numOrphanedDocs|integer|分区内无主文件的数量|
 |shards.numOwnedDocuments|integer|分片拥有的文件数量|
 |shards.ownedSizeBytes|integer|分片所有文件的存储空间,以字节为单位|
 |shards.orphanedSizeBytes|integer|分区内无主文件的存储空间(以字节为单位)|
举例
db.aggregate( [{ $shardedDataDistribution: { } }
] )
输出结果:
[{"ns": "test.names","shards": [{"shardName": "shard-1","numOrphanedDocs": 0,"numOwnedDocuments": 6,"ownedSizeBytes": 366,"orphanedSizeBytes": 0},{"shardName": "shard-2","numOrphanedDocs": 0,"numOwnedDocuments": 6,"ownedSizeBytes": 366,"orphanedSizeBytes": 0}]}
]