複合インデックス
Overview
複合インデックス は、コレクションのドキュメント内の複数のフィールドへの参照を保持するインデックスです。これらのインデックスにより、マルチフィールドのクエリとソートのパフォーマンスが向上します。
複合インデックスを作成するには、 create_index()
メソッドを呼び出して、次の情報を含むドキュメントを指定します。
インデックスを作成するフィールド。
インデックス値のソート順。 昇順には「1」を使用し、降順には「
-1
」を使用します。
サンプル データ
このガイドの例では、 Atlasサンプルデータセットのsample_mflix
データベースのmovies
コレクションを使用します。 C++アプリケーションからこのコレクションにアクセスするには、Atlasmongocxx::client
クラスターに接続する をインスタンス化し、 変数と 変数に次の値を割り当てます。db
collection
auto db = client["sample_mflix"]; auto collection = db["movies"];
MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、 「Atlas を使い始める」ガイドを参照してください。
複合インデックスの作成
次の例では、title
フィールドと year
フィールドに昇順の複合インデックスを作成しています。
auto index_specification = make_document(kvp("title", 1), kvp("year", 1)); auto result = collection.create_index(index_specification.view());
次のクエリは、前のコード例で作成されたインデックスによってカバーされています。
auto document = collection.find_one(make_document(kvp("title","Peter Pan"), kvp("year", 1924))); std::cout << bsoncxx::to_json(*document) << std::endl;
{ "_id" :..., "plot" : "Peter Pan enters the nursery of the Darling children...", ..., "year" : 1924, "imdb" : ..., "type", "movie",...}
詳細情報
インデックスを管理する方法を示す実行可能な例については、「 インデックスを使用したクエリの最適化 」を参照してください。
インデックスの詳細については、 MongoDB Serverマニュアルの次のリソースを参照してください。
API ドキュメント
このガイドで説明されているメソッドの詳細については、次のAPIドキュメントを参照してください。