定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
db.adminCommand( { listDatabases: 1 } )
値(例、1)は、コマンドの出力には影響しません。
コマンドフィールド
コマンドは以下の任意フィールドを取ることができます。
フィールド | タイプ | 説明 |
|---|---|---|
| ドキュメント | 任意。どのデータベースをリストアップするかを決定するクエリ述語。
|
| ブール値 | 任意。コマンドがデータベース名だけを返すか、データベース名とサイズ情報の両方を返すかを示します。 デフォルトは |
| ブール値 | 任意。アクセス制御を可能にする場合に特権に基づいて返されるデータベースを決定するフラグ。
詳しくは、「 動作 」を参照してください。 |
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
動作
認証が有効になっている場合、listDatabases はユーザーの特権と オプションに基づいて異なる結果を返します。authorizedDatabases
authorizedDatabasesが指定されていない場合、ユーザーがクラスターリソースに対して
listDatabasesアクションを持っている場合、listDatabasesコマンドはすべてのデータベースを返します。ユーザーがクラスターで
listDatabasesアクションを実行していない場合、listDatabasesコマンドは、ユーザーが特権を持つデータベースのみを返します(ユーザーが特定のコレクションに対して特権を持つデータベースを含む)。
authorizedDatabasesがtrueの場合、listDatabasesコマンドは、ユーザーが特権を持つデータベースのみを返します(ユーザーが特定のコレクションに対して特権を持つデータベースを含む)。authorizedDatabasesがfalse場合、ユーザーがクラスターに対して
listDatabasesアクションを持っている場合、listDatabasesコマンドはすべてのデータベースを返しますユーザーがクラスターで
listDatabasesアクションを実行していない場合、権限が十分でないとlistDatabasesコマンドはエラーとなります。
クライアントの切断
操作が完了する前にlistDatabasesを発行したクライアントが切断された場合、MongoDB はlistDatabasesをkillOpを使用して終了対象としてマークします。
レプリカセット ノードの状態の制限
レプリカセット ノード上で listDatabases 操作を実行するには、ノードが PRIMARY または SECONDARY状態である必要があります。ノードが STARTUP2 などの別の状態にある場合、操作はエラーになります。
例
データベース名とサイズを一覧表示する
adminデータベースに対して listDatabases を実行します。
db.adminCommand( { listDatabases: 1 } )
出力例:
{ "databases" : [ { "name" : "admin", "sizeOnDisk" : 83886080, "empty" : false }, { "name" : "local", "sizeOnDisk" : 83886080, "empty" : false }, { "name" : "test", "sizeOnDisk" : 83886080, "empty" : false } ], "totalSize" : 251658240, "totalSizeMb" : 251, "ok" : 1 }
データベース名のみを一覧表示
adminデータベースに対して listDatabases を実行します。nameOnly: true オプションを指定します。
db.adminCommand( { listDatabases: 1, nameOnly: true} )
出力例:
{ "databases" : [ { "name" : "admin" }, { "name" : "local" }, { "name" : "test" } ], "ok" : 1 }
フィルターに一致するデータベースを一覧表示する
adminデータベースに対して listDatabases を実行します。フィルター条件に一致するデータベースのみを一覧表示するには、 filter オプションを指定します。
例、次のフィルターは、指定されたregular expression と一致する名前を持つデータベースのみを返します。
db.adminCommand( { listDatabases: 1, filter: { "name": /^rep/ } } )
シャーディングされたクラスター
mongosインスタンスに対して実行すると、listDatabases は次のようになります。
は、
nameOnly: falseの場合、各データベースのサマリー document にshards埋め込みドキュメントを追加します。localデータベースを除外します。
shards埋め込みドキュメントの各フィールドは、シャード名をキーとして使用し、データベースのサイズ(バイト単位)を値として使用します。
sizeOnDiskフィールドは、リスト内のデータベース内のすべてのコレクションとインデックスの合計サイズを表します。
以下に例を挙げます。
{ "databases" : [ { "name" : "admin", "sizeOnDisk" : 16384, "empty" : false, "shards" : { "config" : 16384 } }, { "name" : "config", "sizeOnDisk" : 176128, "empty" : false, "shards" : { "shard01" : 28672, "shard02" : 8192, "config" : 139264 } }, { "name" : "test", "sizeOnDisk" : 12288, "empty" : false, "shards" : { "shard01" : 12288 } } ], "totalSize" : 204800, "totalSizeMb" : 0, "ok" : 1 }
出力
listDatabases.databases.shardsタイプ: ドキュメント
shardsドキュメントの各フィールドは、シャード名をキーとして使用し、データベースのサイズ(バイト単位)を値として使用します。shardsnameOnly: falseの場合のみ出力に表示されます。詳細については、「シャーディングされたクラスター」を参照してください。