AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

クエリをサポートするインデックスの作成

インデックスは、クエリによってスキャンされたすべてのフィールドがインデックスに含まれている場合にクエリを カバー します。 カバード クエリは、コレクションではなくインデックスをスキャンするため、クエリのパフォーマンスが向上します。

クエリされたフィールドのサブセットがインデックス化されている場合は、インデックスも部分的にクエリをサポートできます。

単一コレクションには最大64インデックスを含めることができます。 ただし、インデックスが多すぎると、その制限に達する前にパフォーマンスが低下する可能性があります。 書き込みと読み取りの比率が高いコレクションでは、挿入のたびにすべてのインデックスもアップデートする必要があるため、インデックスによってパフォーマンスが低下する可能性があります。

1

アプリケーション内の一般的なクエリ パターンを識別するには、 $queryStats集計ステージを使用します。 $queryStatsは、共有フィールドに基づいてクエリをグループ化するクエリシェイプのメトリクスを報告します。

2

アプリケーションが頻繁にクエリを実行するフィールドがわかったら、それらのフィールドに対するクエリをサポートするインデックスを作成できます。 詳細については、「例 」を参照してください。

3

アプリケーションでインデックスの使用を開始したら、インデックスの有効性を分析できます。 インデックスの統計と使用状況を確認するには、以下のコマンドを実行します。

アプリケーションのパフォーマンスを向上させるために、未使用のインデックスを削除することを検討します。 詳細については、「不要なインデックスの削除 」を参照してください。

この手順を定期的に繰り返し、インデックスが現在のワークロードをサポートしていることを確認します。

このページの例では、sample_mflixサンプルデータセットのデータを使用します。このデータセットを自己管理型MongoDB配置にロードする方法の詳細については、サンプルデータセットをロードする を参照してください。サンプルデータベースに変更を加えた場合、このページの例を実行するには、データベースを削除して再作成する必要がある場合があります。

注意

moviesコレクション内のdocumentには、ここに表示されていない追加フィールドが含まれています。

アプリケーションが 特定のコレクション内の単一のキーに対してのみクエリを実行する場合は、そのコレクションに対して 単一キーインデックスを作成する必要があります。 例、 moviesコレクション内のtitleにインデックスを作成できます。

db.movies.createIndex( { title: 1 } )

このインデックスは次のクエリをサポートします。

db.movies.find( { title: 'Mulholland Drive' } )

アプリケーションが単一のキーと複数のキーの両方に対してクエリを実行する場合、複合インデックスは単一キーインデックスよりも効率的です。 例、 yearruntimetitleフィールドにインデックスを作成できます。

db.movies.createIndex( { year: 1, runtime: 1, title: 1 } )

複合インデックスは、インデックス フィールドの開始サブセットであるインデックスプレフィックスに対するクエリをサポートします。例、前述のインデックスは次のクエリをサポートしています。

db.movies.find( { year: 2012, runtime: { $gt: Decimal128( "120" ) } }, { title: 1 } )

インデックスプレフィックスに関する詳細とパフォーマンスに関する考慮事項については、「インデックス プレフィックス 」を参照してください。

MongoDBでホストされているデータの場合、MongoDB Search 検索インデックスを使用した全文検索をサポートできます。詳しくはMongoDB 検索インデックスの作成。をご覧ください。

自己管理型(Atlas 以外)の配置の場合、MongoDB はコレクション内の string コンテンツの検索をサポートするtextインデックス型を提供します。 自己管理型テキストインデックスについて詳しくは、「自己管理型配置のテキストインデックス 」を参照してください。

ベクトル検索インデックスはベクトル埋め込みに対するクエリをサポートします。 ベクトル検索インデックスを作成するには、「 ベクトル検索のインデックスベクトル検索」を参照してください。

string の比較にインデックスを使用するには、操作で同じ照合も指定する必要があります。操作でインデックスと異なる照合が指定されている場合、インデックスはインデックス フィールドで string の比較をサポートできません。

警告

照合対応のインデックスキーは、照合のないインデックスのインデックスキーよりも大きくなる可能性があります。これは、照合付きで構成されたインデックスが ICU 照合キーを使用して並べ替え順序を実現するためです。