複合インデックス
Overview
複合インデックスは、コレクションのドキュメント内の複数のフィールドへの参照を保持し、クエリとソートのパフォーマンスを向上させます。 MongoDB\Collection::createIndex()
メソッドとの単一フィールドインデックスの作成に使用するのと同じ構文を使用して、コレクションに複合インデックスを作成できます。
サンプル データ
このガイドの例では、 Atlas サンプル データセットのsample_mflix
データベースのmovies
コレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 Atlas を使い始める 」ガイドを参照してください。
複合インデックスの作成
複合インデックスを作成するには、 MongoDB\Collection::createIndex()
メソッドを使用します。 次の例では、 フィールドと フィールドに昇順でインデックスを作成します。title
year
$indexName = $collection->createIndex( ['title' => 1, 'year' => 1] );
以下は、前のコード例で作成されたインデックスによってカバーされるクエリの例です。
$document = $collection->findOne( ['title' => ['$regex' => 'Sunrise'], 'year' => ['$gte' => 1990]] ); echo json_encode($document), PHP_EOL;
{"_id":...,"title":"Before Sunrise",...,"year":1995,...}
詳細情報
複合インデックスの詳細については、 マニュアルの「 複合インデックスMongoDB Server 」を参照してください。
インデックスを管理する方法を示す実行可能な例については、「 インデックスを使用してクエリを最適化する 」を参照してください。
API ドキュメント
このガイドで説明されているメソッドの詳細については、次の API ドキュメントを参照してください。