Overview
このガイドでは、 Cドライバーを使用してコレクションに対して MongoDB Search クエリを実行する方法を説明します。 MongoDB Search を使用すると、 MongoDB Atlasでホストされているコレクションに対して全文検索を実行できます。 MongoDB Search インデックスは、検索の動作とインデックスを作成するフィールド を指定します。
サンプル データ
このガイドの例では、Atlasサンプルデータセットの moviesデータベース内のsample_mflix コレクションを使用します。 MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、 開始ガイド を参照してください。
MongoDB Search クエリの実行
このセクションでは、コレクションに対してMongoDB Search クエリを実行するための集計パイプラインを作成する方法について説明します。パイプラインステージを表す bson_t 構造に、検索条件を指定するために $search ステージを追加します。次に、mongoc_collection_aggregate() 関数を呼び出し、パイプラインをパラメーターとして渡します。
Tip
集計操作の詳細については、集計ガイドを参照してください。
MongoDB Search クエリを実行中前に、コレクションにMongoDB Searchインデックスを作成する必要があります。 MongoDB Searchインデックス をプログラムで作成する方法については、 「 MongoDB Searchガイド 」の「 検索インデックスの作成 」セクションを参照してください。
MongoDB Search の例
この例では、次のアクションを実行してMongoDB Search クエリを実行します。
ドライバーに指示する
$searchステージを作成し、titleフィールドに"Alabama"という単語が含まれるドキュメントを検索します。クエリ結果に
titleフィールドを含めるようにドライバーに指示する$projectステージを作成しますパイプラインステージを
mongoc_collection_aggregate()関数に渡し、結果を出力します
const bson_t *doc; bson_t *pipeline = BCON_NEW("pipeline", "[", "{", "$search", "{", "index", BCON_UTF8("<index name>"), "text", "{", "query", BCON_UTF8("Alabama"), "path", BCON_UTF8("title"), "}", "}", "}", "{", "$project", "{", "title", BCON_INT32(1), "}", "}", "]"); mongoc_cursor_t *results = mongoc_collection_aggregate(collection, MONGOC_QUERY_NONE, pipeline, NULL, NULL); while (mongoc_cursor_next(results, &doc)) { char *str = bson_as_canonical_extended_json(doc, NULL); printf("%s\n", str); bson_free(str); } bson_destroy(pipeline); mongoc_cursor_destroy(results);
{ "_id" : { "$oid" : "..." }, "title" : "Alabama Moon" } { "_id" : { "$oid" : "..." }, "title" : "Sweet Home Alabama" } { "_id" : { "$oid" : "..." }, "title" : "Crazy in Alabama" }
詳細情報
MongoDB Search の詳細については、Atlas ドキュメントの「 MongoDB Search 」を参照してください。
API ドキュメント
mongoc_collection_aggregate() 関数の詳細については、APIドキュメントを参照してください。