listIndexes
定義
listIndexes
指定されたコレクションのインデックスに関する情報を返します。返されるインデックス情報には、インデックスの作成に使用されたキーとオプション、および 非表示のインデックスが含まれます。オプションで、結果の最初のバッチのバッチ サイズを設定できます。
Tip
mongosh
では、このコマンドはdb.collection.getIndexes()
ヘルパー メソッドを通じて実行することもできます。ヘルパー メソッドは
mongosh
ユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand ( { listIndexes: "<collection-name>", cursor: { batchSize: <int> }, comment: <any> } )
コマンドフィールド
このコマンドは、次のフィールドを使用します。
フィールド | タイプ | 説明 |
---|---|---|
| string | コレクションの名前。 |
| integer | オプション。 カーソルのバッチするサイズを指定します。 |
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。
|
必要なアクセス権
アクセス制御が適用されている場合、組み込みの read
ロールは、データベース内のコレクションに対して listIndexes
を実行するために必要な特権を提供します。
動作
Atlas Search インデックス
listIndexes
は Atlas Search インデックスに関する情報を返しません。代わりに、 $listSearchIndexes
を使用してください。
クライアントの切断
MongoDB 4.2以降では、 listIndexes
を発行したクライアントが操作の完了前に切断した場合、MongoDB は killOp
を使用してlistIndexes
を終了対象としてマークし 。
レプリカセット ノードの状態の制限
レプリカセット ノード上で listIndexes
操作を実行するには、ノードが PRIMARY
または SECONDARY
状態である必要があります。ノードが STARTUP2
などの別の状態にある場合、操作はエラーになります。
ワイルドカード インデックス
MongoDB 6.3、6.0.5、および 5.0.16 以降では、wildcardProjection
フィールドには送信された形式でインデックス プロジェクションが格納されます。それ以前のバージョンでは、プロジェクションは正規化された形式で保存されている場合があります。
サーバーは同じ方法でインデックスを使用しますが、 listIndexes
} コマンドとdb.collection.getIndexes()
コマンドの出力には違いが生じる場合があります。
出力
listIndexes.cursor
カーソルによって指定されたバッチ サイズで返される結果セット。バッチ出力内の各ドキュメントには以下のフィールドが含まれます。
フィールドタイプ説明id
integer
64 ビット整数。ゼロの場合、それ以上の情報のバッチはありません。ゼロ以外の場合、カーソル ID は、
getMore
コマンドで使用して次のインデックス情報のバッチを取得できます。ns
string
データベースとコレクションの名前は次の形式です。
<database-name>.<collection-name>
firstBatch
ドキュメント
インデックス情報には、インデックスの作成に使用されるキーとオプションが含まれます。インデックス オプション hidden は、値が true の場合にのみ存在します。
必要に応じて追加の結果を検索するには、
getMore
を使用します。
例
データベース インデックスの一覧表示
この例では、カーソル バッチ サイズを指定せずに contacts
コレクションのインデックスを一覧表示します。
1 db.runCommand ( 2 { 3 listIndexes: "contacts" 4 } 5 )
1 { 2 cursor: { 3 id: Long("0"), 4 ns: 'test.contacts', 5 firstBatch: [ 6 { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' }, 7 { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' } 8 ] 9 }, 10 ok: 1 11 }
結果バッチサイズを指定する
この例では、contacts
コレクションのインデックスを一覧表示し、カーソル バッチ サイズを 1 に指定します。
1 db.runCommand ( 2 { 3 listIndexes: "contacts", cursor: { batchSize: 1 } 4 } 5 )
1 { 2 cursor: { 3 id: Long("4809221676960028307"), 4 ns: 'test.contacts', 5 firstBatch: [ { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' } ] 6 }, 7 ok: 1 8 }
追加の結果を検索する
この例では、getMore
を使用して、contacts
コレクションから追加の結果バッチを検索します。
1 db.runCommand( 2 { 3 getMore: Long("4809221676960028307"), collection: "contacts" 4 } 5 )
1 { 2 cursor: { 3 nextBatch: [ { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' } ], 4 id: Long("0"), 5 ns: 'test.contacts' 6 }, 7 ok: 1 8 }