Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

listDatabases

項目一覧

  • 定義
  • 互換性
  • 構文
  • コマンドフィールド
  • 動作
  • 出力
listDatabases

listDatabases コマンドは、既存のすべてのデータベースのリストと、それらに関する基本的な統計情報を提供します。次の例のように、 listDatabases は admin データベースに対して実行する必要があります。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

db.adminCommand( { listDatabases: 1 } )

値(つまり1) は、コマンドの出力には影響しません。

コマンドは以下の任意フィールドを取ることができます。

フィールド
タイプ
説明
filter
ドキュメント

任意。どのデータベースをリストアップするかを決定するクエリ述語。

listDatabasesの出力内の任意のフィールドに条件を指定できます。

  • name

  • sizeOnDisk

  • empty

  • shards

nameOnly
ブール値

任意。コマンドがデータベース名だけを返すか、データベース名とサイズ情報の両方を返すかを示すフラグ。

サイズ情報を返すには、各データベースを一度に 1 つずつロックする必要がありますが、名前のみを返す場合はデータベースをロックする必要はありません。

デフォルト値はfalseであるため、 listDatabasesは各データベースの名前とサイズ情報を返します。

authorizedDatabases
ブール値

任意。アクセス制御を可能にする場合に特権に基づいて返されるデータベースを決定するフラグ。

  • authorizedDatabasesが指定されていない場合、

    • ユーザーがクラスターリソースに対してlistDatabasesアクションを持っている場合、 listDatabasesコマンドはすべてのデータベースを返します。

    • ユーザーがクラスターでlistDatabasesアクションを実行していない場合、 listDatabasesはユーザーが特権を持つデータベースのみを返します(ユーザーが特定のコレクションに対して特権を持つデータベースを含む)。

  • authorizedDatabasestrueの場合、 listDatabasesはユーザーが特権を持つデータベースのみを返します(ユーザーが特定のコレクションに対して特権を持つデータベースを含む)。

  • authorizedDatabasesfalse場合、

    • ユーザーがクラスターに対してlistDatabasesアクションを持っている場合、 listDatabasesコマンドはすべてのデータベースを返します

    • ユーザーがクラスターでlistDatabasesアクションを実行していない場合、権限が十分でないとlistDatabasesコマンドはエラーとなります。

詳しくは、「動作 」を参照してください。

comment
any

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

認証が有効になっている場合、 listDatabasesコマンドは、コマンドを実行するユーザーに割り当てられた特権とauthorizedDatabasesコマンド オプションに基づいて異なる 値を返します。

  • authorizedDatabasesが指定されていない場合、

    • ユーザーがクラスターリソースに対してlistDatabasesアクションを持っている場合、 listDatabasesコマンドはすべてのデータベースを返します。

    • ユーザーがクラスターでlistDatabasesアクションを実行していない場合、 listDatabasesコマンドは、ユーザーが特権を持つデータベースのみを返します(ユーザーが特定のコレクションに対して特権を持つデータベースを含む)。

  • authorizedDatabasestrueの場合、 listDatabasesコマンドは、ユーザーが特権を持つデータベースのみを返します(ユーザーが特定のコレクションに対して特権を持つデータベースを含む)。

  • authorizedDatabasesfalse場合、

    • ユーザーがクラスターに対して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
}

Tip

以下も参照してください。

listDatabases.databases

タイプ: 配列

それぞれが1つのデータベースに関する情報を含むドキュメントの配列。

listDatabases.databases.name

タイプ: String

データベースの名前。

listDatabases.databases.sizeOnDisk

型: 整数

ディスク上のデータベースファイルの合計サイズ (バイト単位)。

listDatabases.databases.empty

タイプ: ブール値

データベースが空かどうかを指定します。

listDatabases.databases.shards

タイプ: ドキュメント

shards ドキュメントの各要素は、そのシャード上のコレクションの名前を示すキーと、その値がコレクションのサイズをバイト単位で表すフィールドで構成されています。

shards nameOnly: falseの場合のみ出力に表示されます。

詳細については、「シャーディングされたクラスター」を参照してください。

listDatabases.totalSize

型: 整数

すべての sizeOnDisk フィールドの合計 (バイト単位)。

listDatabases.totalSizeMb

型: 整数

sizeOnDisk0}フィールドの総和をメガバイトで表したもの。

listDatabases.ok

型: 整数

コマンドの戻り値。値1は成功を示します。

戻る

listCollections