listDatabases
定義
listDatabases
listDatabases
コマンドは、既存のすべてのデータベースのリストと、それらに関する基本的な統計情報を提供します。次の例のように、listDatabases
はadmin
データベースに対して実行する必要があります。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
db.adminCommand( { listDatabases: 1 } )
値(つまり1
) は、コマンドの出力には影響しません。
コマンドフィールド
コマンドは以下の任意フィールドを取ることができます。
フィールド | タイプ | 説明 |
---|---|---|
filter | ドキュメント | |
nameOnly | ブール値 | 任意。コマンドがデータベース名だけを返すか、データベース名とサイズ情報の両方を返すかを示すフラグ。 サイズ情報を返すには、各データベースを一度に 1 つずつロックする必要がありますが、名前のみを返す場合はデータベースをロックする必要はありません。 デフォルト値は |
authorizedDatabases | ブール値 | 任意。アクセス制御を可能にする場合に特権に基づいて返されるデータベースを決定するフラグ。
詳しくは、「動作 」を参照してください。 |
comment | 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
ドキュメントの各要素は、そのシャード上のコレクションの名前を示すキーと、その値がコレクションのサイズをバイト単位で表すフィールドで構成されています。shards
nameOnly: false
の場合のみ出力に表示されます。詳細については、「シャーディングされたクラスター」を参照してください。