AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Multikey Indexes

マルチキー インデックス は、配列値のあるフィールドに対するクエリのパフォーマンスを向上させるインデックスです。単一フィールドまたは複合インデックスと同じ構文を使用して、マルチキーインデックスを定義できます。

このガイドの例では、Atlas サンプルデータセットの sample_mflix データベースの movies コレクションを使用します。MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、MongoDBを使い始めるガイドを参照してください。

次の例では、 castフィールドにマルチキー インデックスを作成しています。

bson_error_t error;
bson_t *keys = BCON_NEW("cast", 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("cast", BCON_UTF8("Viola Davis"));
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);

マルチキー インデックスは、クエリ カバレッジ、インデックスバウンド計算、およびソート動作の点で他のインデックスとは動作が異なります。 マルチキー インデックス(動作や制限事項を含む)の詳細については、 マニュアルの「 マルチキー インデックス MongoDB Server」ガイドを参照してください。

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