Docs Menu
Docs Home
/ /

MongoDB Search クエリの実行

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

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

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

Tip

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

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 」を参照してください。

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

戻る

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

項目一覧