Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$shardedDataDistribution(集計)

項目一覧

  • 定義
  • 構文
  • 出力フィールド
  • すべてのシャーディングされたデータディストリビューションを返す
  • 特定のシャードのメトリクスを返す
  • 名前空間のメトリクスを返す
  • 孤立したドキュメントが存在しないことを確認
$shardedDataDistribution

バージョン 6.0.3 で追加

シャーディングされたコレクション内のデータの分散に関する情報を返します。

注意

この集計ステージは mongosでのみ使用できます。

この集計ステージはadminデータベースで実行する必要があります。 ユーザーにはshardedDataDistribution特権アクションが必要です。

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

特定のシャードのシャーディングされたデータ分布のメトリクスを返すには、次のコマンドを実行します。

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