Multikey Indexes
Overview
マルチキー インデックスは、配列値のあるフィールドに対するクエリのパフォーマンスを向上させるインデックスです。 MongoDB\Collection::createIndex()
メソッドと、 の単一フィールドまたは複合インデックスの作成に使用するのと同じ構文を使用して、コレクションにマルチキーインデックスを作成できます。
サンプル データ
このガイドの例では、 Atlas サンプル データセットのsample_mflix
データベースのmovies
コレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 Atlas を使い始める 」ガイドを参照してください。
マルチキー インデックスの作成
マルチキーインデックスを作成するには、 MongoDB\Collection::createIndex()
メソッドを使用します。 次の例では、配列値を持つcast
フィールドに昇順でインデックスを作成します。
$indexName = $collection->createIndex(['cast' => 1]);
以下は、前のコード例で作成されたインデックスによってカバーされるクエリの例です。
$document = $collection->findOne( ['cast' => ['$in' => ['Aamir Khan', 'Kajol']]] ); echo json_encode($document), PHP_EOL;
{"_id":...,"title":"Holi",...,"cast":["Ashutosh Gowariker", "Aamir Khan","Rahul Ranade","Sanjeev Gandhi"],...}
詳細情報
マルチキー インデックスは、クエリ カバレッジ、インデックスバウンド計算、およびソート動作の点で他のインデックスとは動作が異なります。 マルチキー インデックスの動作と制限の詳細については、 MongoDB Serverマニュアルの「 マルチキーインデックス」を参照してください。
インデックスを管理する方法を示す実行可能な例については、「 インデックスを使用してクエリを最適化する 」を参照してください。
API ドキュメント
このガイドで説明されているメソッドの詳細については、次の API ドキュメントを参照してください。