定義
- db.collection.getShardDistribution()
- 重要- mongosh メソッド- このページでは、 - mongoshメソッドが文書化されます。これは Node.js などの言語固有のドライバーのドキュメントではありません。- MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。 - のシャーディングされたコレクションのデータ分散統計を出力します。 
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです 
重要
このコマンドは、M0 および Flex クラスターではサポートされていません。詳細については、「 サポートされていないコマンド 」を参照してください。
- MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン 
- MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン 
構文
getShardDistribution() メソッドの形式は次のとおりです。
db.collection.getShardDistribution() 
出力
注意
MongoDB Shell バージョン 2.3.3 での getShardDistribution() の動作の変更 :
- MongoDB Shell バージョン 2.3.3 以降、 - getShardDistribution()には通常のシャーディングされたデータのみが含まれており、孤立したドキュメントは考慮されません。
- MongoDB Shell バージョン 2.3.3 より前は、通常のシャーディングされたデータと、削除が保留中の 孤立したドキュメント の両方の - getShardDistribution()アカウント。コレクションに孤立したドキュメントが含まれている場合、- getShardDistribution()は、コレクションがバランスが取れていないことを示す可能性があります。孤立したデータを含むシャードは、他のシャードと比較してドキュメント数とデータサイズが大きいが、チャンクの数は同じである。
サンプル出力
以下は、シャーディングされたコレクションのディストリビューションのサンプル出力です。
Shard shard01 at shard01/localhost:27018 {   data: '38.14MB',   docs: 1000003,   chunks: 2,   'estimated data per chunk': '19.07B',   'estimated docs per chunk': 500001 } --- Shard shard02 at shard02/localhost:27019 {   data: '38.14B',   docs: 999999,   chunks: 3,   'estimated data per chunk': '12.71B',   'estimated docs per chunk': 333333 } --- Totals {   data: '76.29B',   docs: 2000002,   chunks: 5,   'Shard shard01': [ '50 % data', '50 % docs in cluster', '40B avg obj size on shard' ],   'Shard shard02': [ '49.99 % data', '49.99 % docs in cluster', '40B avg obj size on shard' ] } 
出力フィールド
Shard shard01 at <host-a>   {   data: <size-a>,   docs: <count-a>,   chunks: <number of chunks-a>,   'estimated data per chunk': <size-a>/<number of chunks-a>,   'estimated docs per chunk': <count-a>/<number of chunks-a> } --- Shard shard02 at <host-b> {   data: <size-b>,   docs: <count-b>,   chunks: <number of chunks-b>,   'estimated data per chunk': <size-b>/<number of chunks-b>,   'estimated docs per chunk': <count-b>/<number of chunks-b> } --- Totals {   data: <stats.size>,   docs: <stats.count>,   chunks: <calc total chunks>,   Shard shard01: [ <estDataPercent-a> % data, <estDocPercent-a> % docs in cluster, stats.shards[ <shard-a> ].avgObjSize avg obj size on shard ],   Shard shard02: [ <estDataPercent-b> % data, <estDocPercent-b> % docs in cluster, stats.shards[ <shard-b> ].avgObjSize avg obj size on shard ] } 
出力情報には、次の内容が表示されます。
| 出力 | 説明 | |
|---|---|---|
| 
 | シャード名を保持する string。 | |
| 
 | ホスト名を保持する string。 | |
| 
 | 測定単位を含むデータのサイズを含む数値(例:  | |
| 
 | シャード内のドキュメント数を報告する数値。 | |
| 
 | シャード内のチャンクの数を報告する数値。 | |
| 
 | シャードのチャンクあたりの推定データサイズを反映する計算値(測定単位(例:  | |
| 
 | シャードのチャンクあたりの推定ドキュメント数を反映する計算値。 | |
| 
 | シャーディングされたコレクション内のデータの合計サイズ(測定単位を含む)を報告する値。 | |
| 
 | シャーディングされたコレクション内のドキュメントの合計数を報告する値。 | |
| 
 | すべてのシャードからのチャンク数を報告する計算数値。 (例: )。  | |
| 
 | 各シャードについて、コレクションの合計データ サイズの割合としてデータ サイズを反映する計算値。 (例: )。  | |
| 
 | 各シャードについて、コレクションの合計ドキュメント数に対する割合としてドキュメント数を反映する計算値。 (例: )。  | |
| 
 | シャードの平均オブジェクトサイズ(測定単位を含む)を反映する数値。 | 
動作
mongodWired Tigerストレージエンジンを使用して を不正にシャットダウンした後、db.collection.getShardDistribution() によって報告されるカウントとサイズの統計が不正確になる可能性があります。
ドリフトの量は、チェックポイントからクリーン シャットダウンまでの間に実行された挿入、アップデート、または削除操作の数によって異なります。チェックポイントは通常、60 秒ごとに発現します。ただし、デフォルト以外の --syncdelay 設定で実行されている mongod インスタンスでは、チェックポイントの頻度が増減する可能性があります。
不正なシャットダウン後に統計を復元するには、mongod の各コレクションに対して validate を実行します。
不正なシャットダウン後: