定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
- 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 オプションを指定します。
例、次の例では、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の場合のみ出力に表示されます。- 詳細については、「シャーディングされたクラスター」を参照してください。