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