定義
db.collection.getIndexes()重要
mongosh メソッド
このページでは、
mongoshメソッドについて記載しています。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
listIndexesコマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
コレクションの既存のインデックス(隠しインデックスを含む)を識別して説明するドキュメントのリストを含む配列を返します。
コレクションで
db.collection.getIndexes()を呼び出す必要があります。 例:db.collection.getIndexes() collectionを、インデックス情報を返すコレクションの名前に変更します。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
動作
クライアントの切断
MongoDB 4.2以降では、 db.collection.getIndexes()を発行したクライアントが操作の完了前に切断した場合、MongoDB は killOp を使用してdb.collection.getIndexes()を終了対象としてマークし 。
レプリカセット ノードの状態の制限
レプリカセット ノードでlistIndexes操作を実行するには、ノードがPRIMARYまたはSECONDARY状態である必要があります。 ノードがSTARTUP2などの別の状態にある場合、操作はエラーになります。
ワイルドカード インデックス
MongoDB 5.0.16以降、 wildcardProjectionフィールドにはインデックスプロジェクションが送信された形式で保存されます。 それ以前のバージョンでは、プロジェクションは正規化された形式で保存されている場合があります。
サーバーは同じ方法でインデックスを使用しますが、 listIndexes } コマンドとdb.collection.getIndexes()コマンドの出力には違いが生じる場合があります。
必要なアクセス権
アクセス制御が強制されているときにdb.collection.getIndexes()を実行するには、コレクションでlistIndexesに対する特権が必要です。
組み込みロールreadには、データベース内のコレクションに対してdb.collection.getIndexes()を実行するために必要な特権が付与されます。
出力
db.collection.getIndexes() コレクションのインデックス情報を保持するドキュメントの配列を返します。以下に例を挙げます。
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "status" : 1 }, "name" : "status_1" }, { "v" : 2, "key" : { "points" : 1 }, "name" : "points_1" } ]
インデックス情報には、インデックスの作成に使用されるキーとオプションが含まれます。 インデックス オプションhiddenは、値がtrueの場合にのみ使用できます。
キーとインデックスのオプションの詳細については、db.collection.createIndex() を参照してください。