Docs Menu
Docs Home
/ /

MongoDB 検索クエリを実行する

このガイドでは、Cドライバーを使用してコレクションに対して MongoDB 検索クエリを実行する方法を説明します。MongoDB Search を使用すると、MongoDB Atlasでホストされているコレクションに対して全文検索を検索することができます。MongoDB 検索インデックスは、検索の動作とインデックスを作成するフィールドを指定します。

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

このセクションでは、コレクションに対してMongoDB 検索クエリを実行するための集計パイプラインを作成する方法について説明します。パイプラインステージを表す bson_t 構造に、検索する条件を指定するために $search ステージを追加します。次に、mongoc_collection_aggregate() 関数を呼び出し、パイプラインをパラメーターとして渡します。

Tip

集計操作の詳細については、集計ガイドを参照してください。

MongoDB 検索クエリを実行する前に、コレクションにMongoDB 検索インデックスを作成する必要があります。MongoDB Searchインデックスをプログラムで作成する方法については、MongoDB Search インデックスガイドの「検索インデックスの作成」セクションを参照してください。

この例では、次のアクションを実行して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 検索する を参照してください。

mongoc_collection_aggregate() 関数の詳細については、APIドキュメントを参照してください。

戻る

データベースコマンドの実行

項目一覧