$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}]}
]