定義
バージョン8.0.10の新機能。
警告
$listClusterCatalog
集計ステージはサポートされておらず、将来のリリースで安定することは保証されません。 このステージの特定の出力形式に依存する機能はビルドしないでください。出力は将来のリリースで変更される可能性があるためです。
$listClusterCatalog
集計ステージでは、名前や作成オプションなど、クラスター内のコレクションの情報が出力されます。
$listClusterCatalog
は、パイプラインの最初のステージである必要があります。
データベースに対してこのステージを呼び出す必要があります。このステージを 管理データベースに対して実行すると、クラスター内のすべてのコレクションに関する情報が返されます。他のデータベースに対して実行すると、そのデータベース内のすべてのコレクションに関する情報が返されます。
構文
このステージの構文は、次のとおりです。
{ $listClusterCatalog: { shards: true, balancingConfiguration: true } }
$listClusterCatalog
ステージでは、次の任意フィールドを持つドキュメントが取得されます。
フィールド | 説明 |
---|---|
| 任意。 |
| 任意。 |
出力
$listClusterCatalog
はコレクションごとにドキュメントを返します。各ドキュメントには、次のフィールドを含めることができます。
{ "ns" : <string>, "db" : <string>, "type" : <string>, "idIndex" : <document>, "options" : <document>, "info" : <document>, "sharded" : <boolean>, "shardKey" : <document>, "shards" : [<string>], "balancingEnabled" : <boolean>, "balancingEnabledReason" : <document>, "autoMergingEnabled" : <boolean>, "chunkSize" : <int> }
次の表には、$listClusterCatalog
が返すフィールドに関する情報が含まれています。
フィールド | タイプ | デフォルトのクエリで返された | 説明 |
---|---|---|---|
| string | true | コレクションの完全な名前空間(形式は |
| string | true | コレクションが配置されているデータベースの名前。 |
| string | true | |
| ドキュメント | true | コレクションの |
| ドキュメント | true | 返されるドキュメントには、次のフィールドが含まれます。
これらのオプションは、 |
| ドキュメント | true | コレクションに関連する次のフィールドを一覧表示します。
|
| ブール値 | true | コレクションがシャーディングされているか、シャーディングされていないかを指定します。このフィールドは、レプリカセットサーバーにも存在します。 |
| ドキュメント | コレクションがシャーディングされている場合にのみ存在 | コレクションのシャードキー。 |
| 文字列の配列 | false は、入力ドキュメントにシャードを指定する必要があります | コレクションごとのシャード。 |
| ブール値 | false は、入力ドキュメントで balancerConfiguration を指定する必要があります | そのコレクションでバランシングが有効かどうかを指定します。このフィールドは、コレクションがシャーディングされている場合にのみ存在します。 |
| ドキュメント | false は、入力ドキュメントで balancerConfiguration を指定する必要があります | バランシングを切り替えるために使用されたコマンドに関する情報を返します。このドキュメントには、以下のフィールドがあります。
このフィールドは、コレクションがシャーディングされている場合にのみ存在します。 |
| ブール値 | false は、入力ドキュメントで balancerConfiguration を指定する必要があります | コレクションで AutoMerger が有効かどうかを指定します。このフィールドは、コレクションがシャーディングされている場合にのみ存在します。 |
| 整数 | false は、入力ドキュメントで balancerConfiguration を指定する必要があります | コレクションのチャンク サイズを MiB 単位で返します。このフィールドは、コレクションがシャーディングされている場合にのみ存在します。 |
制限事項
このコマンドをadmin
データベースに対して実行する場合は、 ロールに含まれるlistClusterCatalog
clusterMonitor
特権アクションが必要です。
このコマンドを特定のデータベースに対して実行するには、 ロールに含まれるlistCollections
read
特権アクションが必要です。
例
すべてのコレクションからの情報を一覧表示する
次の例では、sample_mflix
データベース内のすべてのコレクションからデフォルト情報を返します。
use sample_mflix db.aggregate([ { $listClusterCatalog: {} } ])
この例を実行すると、sample_mflix
データベース内の各コレクションのドキュメントを含む配列が返されます。これらのドキュメントにはそれぞれ、前の表で説明したデフォルトのフィールドが含まれています。
[ { ns: "sample_mflix.movies", db: "sample_mflix", type: "collection", idIndex: { v: 2, key: { _id: 1 }, name: '_id' }, options: { ... }, sharded: false, info: { readOnly: false, uuid: new UUID("6c46c8b9-4999-4213-bcef-9a36b0cff228") } }, { ns: "sample_mflix.comments", db: "sample_mflix", type: "collection", options: { ... }, sharded: true, info: { readOnly: true, uuid: new UUID("6c448eb9-4090-4213-bbaf-9a36bb7fc98e") } shardKey: { _id: 1} }, ... ]
バランシング構成
シャーディングされたコレクションを持つデータベース内のすべてのコレクションのデフォルトフィールドとバランシング構成に関する情報を返すことができます。
次の例では、sample_mflix
データベースのバランシング構成を返します。
use sample_mflix db.aggregate([ { $listClusterCatalog: { balancingConfiguration: true } } ])
上記の例では、各コレクションのドキュメントを含む配列が返されます。これらの各ドキュメントには、シャーディングされたコレクションのデフォルトフィールドと、balancingEnabled
、balancingEnabledReason
、autoMergingEnabled
、chunkSize
フィールドが含まれています。次のコードは、この出力の例を示しています。
[ { ns: "sample_mflix.movies", db: "sample_mflix", type: "collection", idIndex: { v: 2, key: { _id: 1 }, name: '_id' }, options: { ... }, sharded: false, ... }, { ns: "sample_mflix.comments", db: "sample_mflix", type: "collection", sharded: true, shardKey: { _id: 1}, balancingEnabled: true, balancingEnabledReason: { enableBalancing: true, allowMigrations: false }, autoMergingEnabled: false, chunkSize: 256, ... }, ... ]