Overview
単一フィールド インデックスは、コレクションのドキュメント内の単一のフィールドを参照するインデックスです。 単一フィールド クエリとソートのパフォーマンスが向上し、一定時間の経過後または特定のクロック時間にコレクションからドキュメントを自動的に排除するTTL インデックスをサポートします。
単一フィールド インデックスを作成する場合は、以下を指定する必要があります。
インデックスを作成するフィールド。
インデックス値の並べ替え順序(昇順または降順)。
BCON_INT32(1)昇順の場合はBCON_INT32(-1){0 を指定し、降順の場合は を指定します。
注意
_id_インデックスは、単一フィールド インデックスの例です。 このインデックスは、新しいコレクションが作成されるときに、 _idフィールドに自動的に作成されます。
サンプル データ
moviessample_mflixこのガイドの例では、Atlasサンプルデータセットの データベースの コレクションを使用します。 MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、 MongoDB を使い始めるガイドを 参照してください 。
単一フィールド インデックスの作成
次の例では、 titleフィールドに昇順のインデックスを作成します。
bson_error_t error; bson_t *keys = BCON_NEW("title", BCON_INT32(1)); mongoc_index_model_t *index_model = mongoc_index_model_new(keys, NULL); if (mongoc_collection_create_indexes_with_opts(collection, &index_model, 1, NULL, NULL, &error)) { printf("Successfully created index\n"); } else { fprintf(stderr, "Failed to create index: %s", error.message); } bson_destroy(keys); mongoc_index_model_destroy(index_model);
以下は、前のコード例で作成されたインデックスによってカバーされるクエリの例です。
const bson_t *doc; bson_t *filter = BCON_NEW("title", "Batman"); mongoc_cursor_t *results = mongoc_collection_find_with_opts(collection, filter, NULL, NULL); while (mongoc_cursor_next(results, &doc)) { char *str = bson_as_canonical_extended_json(doc, NULL); printf("%s\n", str); bson_free(str); } mongoc_cursor_destroy(results); bson_destroy(filter);
{ "_id" : ..., "title" : "Batman", ... }
詳細情報
単一フィールド インデックスの詳細については、 MongoDB Serverマニュアルの「 単一フィールド インデックス 」を参照してください。
API ドキュメント
このガイドで説明されている関数の詳細については、次のAPIドキュメントを参照してください。