Docs Menu
Docs Home
/ /

MongoDB Search クエリの実行

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

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

このセクションでは、 コレクションに対してMongoDB Search クエリを実行するための集計パイプラインを作成する方法について説明します。 Aggregates.search() ビルダー メソッドを使用して、検索条件を指定する $searchパイプラインステージを作成できます。次に、aggregate() メソッドを呼び出し、パイプラインをパラメーターとして渡します。

注意

MongoDB v4.2 以降の Atlas でのみ利用可能

この集計パイプライン演算子は、 MongoDB Searchインデックスによってカバーされている v 以降を実行中MongoDB4.2 Atlasクラスターでホストされているコレクションでのみ使用できます。必要な設定とこの演算子の機能の詳細については、 MongoDB Search のドキュメント を参照してください。

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

この例では、次のアクションを実行してMongoDB Search クエリを実行します。

  • Aggregates.search() ビルダ メソッドを使用して $search ステージを構築し、ドライバーに title フィールドに "Alabama" という単語が含まれているドキュメントをクエリするよう指示します。

  • Aggregates.project()ビルダ メソッドを使用して $project ステージを構築し、クエリ結果に titleフィールドを含めるようにドライバーに指示します

  • パイプラインのステージをaggregate()メソッドに渡し、結果を出力します。

val pipeline: List<Bson> = listOf(
search(SearchOperator.text(
fieldPath("title"), "Alabama")),
project(Projections.include("title"))
)
val results = collection.aggregate(pipeline)
results.forEach { doc ->
println(doc.toJson())
}
{"_id": {"$oid": "..."}, "title": "Alabama Moon"}
{"_id": {"$oid": "..."}, "title": "Crazy in Alabama"}
{"_id": {"$oid": "..."}, "title": "Sweet Home Alabama"}

searchMeta() メソッドを使用して $searchMeta パイプラインステージを作成します。このステージは Atlas の全文検索結果のメタデータのみを返します。

Tip

MongoDB v4.4.11 以降の Atlas でのみ利用可能

この集計パイプライン演算子は、v4.4.11 以降を実行している MongoDB Atlas クラスターでのみ利用可能です。

次の例では、 MongoDB Search集計ステージの nearメタデータを示しています。

searchMeta(
SearchOperator.near(2010, 1, fieldPath("year"))
)

MongoDB Search の詳細については、Atlas ドキュメントの「 MongoDB Search 」を参照してください。

このガイドで言及されているメソッドについて詳しくは、次のAPIドキュメントを参照してください。

戻る

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

項目一覧