Overview
このガイドでは、Cドライバーを使用してコレクションに対して MongoDB 検索クエリを実行する方法を説明します。MongoDB Search を使用すると、MongoDB Atlasでホストされているコレクションに対して全文検索を検索することができます。MongoDB 検索インデックスは、検索の動作とインデックスを作成するフィールドを指定します。
サンプル データ
このガイドの例では、Atlasサンプルデータセットの sample_mflixデータベース内の moviesコレクションを使用します。MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、ガイドを参照してください。
MongoDB 検索クエリを実行する
このセクションでは、コレクションに対してMongoDB 検索クエリを実行するための集計パイプラインを作成する方法について説明します。パイプラインステージを表す bson_t 構造に、検索する条件を指定するために $search ステージを追加します。次に、mongoc_collection_aggregate() 関数を呼び出し、パイプラインをパラメーターとして渡します。
Tip
集計操作の詳細については、集計ガイドを参照してください。
MongoDB 検索クエリを実行する前に、コレクションにMongoDB 検索インデックスを作成する必要があります。MongoDB Searchインデックスをプログラムで作成する方法については、MongoDB Search インデックスガイドの「検索インデックスの作成」セクションを参照してください。
MongoDB 検索するの例
この例では、次のアクションを実行してMongoDB 検索クエリを実行します。
ドライバーに指示する
$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 検索する の詳細については、Atlas ドキュメントの MongoDB 検索する を参照してください。
API ドキュメント
mongoc_collection_aggregate() 関数の詳細については、APIドキュメントを参照してください。