定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
db.adminCommand( { listDatabases: 1 } )
値(つまり1) は、コマンドの出力には影響しません。
コマンドフィールド
コマンドは以下の任意フィールドを取ることができます。
フィールド | タイプ | 説明 |
|---|---|---|
| ドキュメント | 任意。どのデータベースをリストアップするかを決定するクエリ述語。
|
| ブール値 | 任意。コマンドがデータベース名だけを返すか、データベース名とサイズ情報の両方を返すかを示すフラグ。 デフォルト値は |
| ブール値 | 任意。アクセス制御を可能にする場合に特権に基づいて返されるデータベースを決定するフラグ。
For more information, see Behavior. |
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
動作
認証が有効になっている場合、listDatabases コマンドは、コマンドを実行するユーザーに割り当てられた特権とauthorizedDatabases コマンド オプションに基づいて異なる 値を返します。
authorizedDatabasesが指定されていない場合、If the user has
listDatabasesaction on the cluster resource,listDatabasescommand returns all databases.If the user does not have
listDatabasesaction on the cluster,listDatabasescommand returns only the databases for which the user has privileges (including databases for which the user has privileges on specific collections).
If
authorizedDatabasesistrue,listDatabasescommand returns only the databases for which the user has privileges (including databases for which the user has privileges on specific collections).authorizedDatabasesがfalse場合、If the user has
listDatabasesaction on the cluster,listDatabasescommand returns all databasesIf the user does not have
listDatabasesaction on the cluster,listDatabasescommand errors with insufficient permissions.
クライアントの切断
If the client that issued listDatabases disconnects before the operation completes, MongoDB marks listDatabases for termination using killOp.
レプリカセット ノードの状態の制限
To run on a replica set member, listDatabases operations require the member to be in PRIMARY or SECONDARY state. If the member is in another state, such as STARTUP2, the operation errors.
例
データベース名とサイズを一覧表示する
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 }
データベース名のみを一覧表示
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ドキュメントの各要素は、そのシャード上のコレクションの名前を示すキーと、その値がコレクションのサイズをバイト単位で表すフィールドで構成されています。shardsnameOnly: falseの場合のみ出力に表示されます。詳細については、「シャーディングされたクラスター」を参照してください。