db.getCollectionNames()
定義
db.getCollectionNames()
現在のデータベース内のすべてのコレクションとビューの名前を含む配列を返します。アクセス制御を使用して実行中の場合は、ユーザーの特権に応じたコレクションの名前を返します。 詳細については、 必要なアクセス権 を参照してください。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
必要なアクセス権
db.getCollectionNames()
は次のものと同等です。
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
必要なアクセス権(データベースに対して
listCollections
アクションを許可する特権)を持つユーザーの場合、このメソッドはデータベースのすべてのコレクションの名前を一覧表示します。必要なアクセス権を持たないユーザーの場合、このメソッドはユーザーが特権を持っているコレクションのみを一覧表示します。たとえば、ユーザーがデータベース内の特定のコレクションに対して
find
を持っている場合、メソッドはそのコレクションのみを返します。
動作
クライアントの切断
MongoDB 4.2以降では、 db.getCollectionNames()
を発行したクライアントが操作の完了前に切断した場合、MongoDB は killOp
を使用してdb.getCollectionNames()
を終了対象としてマークし 。
レプリカセット ノードの状態の制限
レプリカセット ノードでlistCollections
操作を実行するには、ノードがPRIMARY
またはSECONDARY
状態である必要があります。 ノードがSTARTUP2
などの別の状態にある場合、操作はエラーになります。
例
以下は、 records
データベース内のすべてのコレクションの名前を返します。
use records db.getCollectionNames()
このメソッドは、コレクションの名前を以下のように配列で返します。
[ "employees", "products", "mylogs", "system.indexes" ]