Docs Menu
Docs Home
/ / /
C++ ドライバー
/

単一フィールド インデックス

項目一覧

  • Overview
  • サンプル データ
  • 単一フィールド インデックスの作成
  • 詳細情報
  • API ドキュメント

単一フィールドインデックスは、コレクション内のドキュメント内の単一のフィールドへの参照を保持するインデックスです。これらのインデックスにより、単一フィールドのクエリとソートのパフォーマンスが向上します。 また、一定時間の経過後または指定されたクロック時間にコレクションからドキュメントを自動的に削除する TTL インデックス もサポートしています。

単一フィールドインデックスを作成するには、 create_index() メソッドを呼び出し、次の情報を含むドキュメントを指定します。

  • インデックスを作成するフィールド。

  • インデックス値のソート順。 昇順には 1 を使用し、降順には -1 を使用します。

注意

デフォルトの _id_インデックスは、単一フィールドインデックスの例です。このインデックスは、新しいコレクションが作成されるときに、_idフィールドに自動的に作成されます。

このガイドの例では、 Atlasサンプルデータセットsample_mflixデータベースのmoviesコレクションを使用します。 C++アプリケーションからこのコレクションにアクセスするには、Atlasmongocxx::client クラスターに接続する をインスタンス化し、次の値をdb 変数とcollection 変数に割り当てます。

auto db = client["sample_mflix"];
auto collection = db["movies"];

MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、 「Atlas を使い始める」ガイドを参照してください。

次の例では、create_index() メソッドを使用して、titleフィールドに昇順の単一フィールドインデックスを作成しています。

auto index_specification = make_document(kvp("title", 1));
auto result = collection.create_index(index_specification.view());

次のクエリは、前のコード例で作成されたインデックスによってカバーされています。

auto document = collection.find_one(make_document(kvp("title","Peter Pan")));
std::cout << bsoncxx::to_json(*document) << std::endl;
{ "_id" :..., "plot" : "Peter Pan enters the nursery of the Darling children...",
"genres" : [ "Adventure", "Fantasy", "Family" ], "runtime" : 105,...}

インデックスを管理する方法を示す実行可能な例については、「 インデックスを使用したクエリの最適化 」を参照してください。

インデックスの詳細については、 MongoDB Serverマニュアルの次のリソースを参照してください。

このガイドで説明されているメソッドの詳細については、次のAPIドキュメントを参照してください。

戻る

インデックスとの連携