定義
バージョン8.1の新機能。
警告
$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,     ...   },   ... ] 
このページのNode.js の例では、Atlasサンプルデータセット の sample_mflixデータベースを使用します。無料のMongoDB Atlas cluster を作成し、サンプルデータセットをロードする方法については、 MongoDB Node.jsドライバーのドキュメントの開始を参照してください。
MongoDB Node.jsドライバーを使用して集計パイプラインに $listClusterCatalog ステージを追加するには、パイプラインオブジェクトに $listClusterCatalog 演算子を含めます。
データベース内のすべてのコレクションからの情報を一覧表示する
次の例では、sample_mflixデータベース内のすべてのコレクションの情報を返すパイプラインステージを作成しています。次に、この例ではパイプラインを実行します。
const pipeline = [{ $listClusterCatalog: {} }]; const db = client.db("sample_mflix"); const cursor = db.aggregate(pipeline); return cursor; 
クラスター内のすべてのコレクションからの情報を一覧表示する
次の例では、クラスター内のすべてのコレクションの情報を返すパイプラインステージを作成しています。次に、この例ではパイプラインを実行します。
const pipeline = [{ $listClusterCatalog: {} }]; const adminDB = client.db("admin"); const cursor = adminDB.aggregate(pipeline); return cursor; 
バランシング構成
次の例では、sample_mflixデータベース内のすべてのコレクションの返されるドキュメントにバランシング情報を含むパイプラインを作成します。次に、この例ではパイプラインを実行します。
const db = client.db("sample_mflix"); const pipeline = [{ $listClusterCatalog: {balancingConfiguration: true} }]; const cursor = db.aggregate(pipeline); return cursor;