listDatabases
定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、 「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
db.adminCommand( { listDatabases: 1 } )
値(つまり1
) は、コマンドの出力には影響しません。
コマンドフィールド
コマンドは以下の任意フィールドを取ることができます。
フィールド | タイプ | 説明 |
---|---|---|
filter | ドキュメント | 任意。どのデータベースをリストアップするかを決定するクエリ述語。
|
nameOnly | ブール値 | 任意。コマンドがデータベース名だけを返すか、データベース名とサイズ情報の両方を返すかを示すフラグ。 デフォルト値は |
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 } )
出力例:
{ "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
オプションを指定します。
例、次の例では、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
の場合のみ出力に表示されます。詳細については、「シャーディングされたクラスター」を参照してください。