定義
- sh.balancerCollectionStatus(namespace)
- シャーディングされたコレクションのチャンクがバランシングされているかどうか(つまり は、シャードのドレイン、ゾーン違反、またはシャード間のチャンクの不均衡により、コマンドが実行される時点で移動する必要がない場合、または移動する必要がある場合があります。 - 重要- mongosh メソッド- このページでは、 - mongoshメソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。- データベースコマンドについては、 - balancerCollectionStatusコマンドを参照してください。- MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。 
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです 
重要
このコマンドは、M0 および Flex クラスターではサポートされていません。詳細については、「 サポートされていないコマンド 」を参照してください。
- MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン 
- MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン 
構文
sh.balancerCollectionStatus()の形式は次のとおりです。
sh.balancerCollectionStatus( <namespace> ) 
Parameter
sh.balancerCollectionStatus()メソッドでは、次のパラメーターが使われます。
アクセス制御
アクセス制御を使用して実行中の場合、メソッドを実行するには、ユーザーはenableSharding データベースやコレクション に対する 特権アクションを持っている必要があります。つまり、ユーザーは、次の 特権 を付与する ロール を持っていなければなりません。
{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] } 
組み込みの clusterManager ロールにより、適切な権限が付与されます。
例
シャーディングされたコレクションtest.contactsのチャンクが現在バランスがとれているかどうかを確認するには、 mongosインスタンスに接続して次のコマンドを実行します。
sh.balancerCollectionStatus("test.contacts") 
コレクションのチャンクを移動する必要がない場合、メソッドは次のような出力を返します。
{    "balancerCompliant" : true,    "ok" : 1,    "operationTime" : Timestamp(1583193238, 1),    "$clusterTime" : {       "clusterTime" : Timestamp(1583193238, 1),       "signature" : {          "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),          "keyId" : Long(0)       }    } } 
進行中のデフラグ プロセス
クエリされた名前空間がチャンクのデフラグを実行している場合、 sh.balancerCollectionStatusメソッドは次のような出力を返します。
{    "chunkSize": Long("128"),    "balancerCompliant": false,    "firstComplianceViolation": "defragmentingChunks",    "details": {       "currentPhase": "moveAndMergeChunks",       "progress": { "remainingChunksToProcess": 1 }    } } 
注意
チャンクのデフラグは複数のフェーズで行われます。 progressフィールドは現在のフェーズにのみ関連します。
出力の説明については、 balancerCollectionStatus 出力 を参照してください。