Docs 菜单

Docs 主页开发应用程序MongoDB Manual

$shardedDataDistribution(聚合)

在此页面上

  • 定义
  • 语法
  • 输出字段
  • 举例
  • 返回所有分片数据分布指标
  • 返回特定分片的指标
  • 返回命名空间的指标
  • 确认没有剩余孤立文档
$shardedDataDistribution

6.0.3 版本新增

返回分片集合中数据的分布信息。

注意

此聚合阶段仅适用于mongos

此聚合阶段必须在admin数据库上运行。用户必须具有shardedDataDistribution特权操作。

shardedDataDistribution 阶段使用以下语法:

db.aggregate( [
{ $shardedDataDistribution: { } }
] )

$shardedDataDistribution阶段输出数据库中每个分片集合的文档数组。 这些文档包含以下字段:

字段名称
数据类型
说明
ns
字符串
分片集合的命名空间。
shards
阵列
集合中的分片以及每个分片的数据分布信息。
shards.numOrphanedDocs
整型
分片中孤立文档的数量。
shards.numOwnedDocuments
整型
分片拥有的文档数量。
shards.ownedSizeBytes
整型
分片拥有的文档的存储量(以字节为单位)。
shards.orphanedSizeBytes
整型
分片中孤立文档的存储量(以字节为单位)。

要返回所有分片数据分布指标,请运行以下命令:

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

要返回特定分片的分片数据分布指标,请运行以下命令:

db.aggregate([
{ $shardedDataDistribution: { } },
{ $match: { "shards.shardName": "<name of the shard>" } }
])

要返回命名空间的分片数据分布数据,请运行以下命令:

db.aggregate([
{ $shardedDataDistribution: { } },
{ $match: { "ns": "<database>.<collection>" } }
])

从 MongoDB 6开始。 0 。 3 ,可以使用 $shardedDataDistribution阶段运行聚合,以确认没有剩余孤立文档:

db.aggregate([
{ $shardedDataDistribution: { } },
{ $match: { "ns": "<database>.<collection>" } }
])

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

确保集群中每个分片的"numOrphanedDocs"0

← $setWindowFields(聚合)