Overview
このガイドでは、 Goドライバーを使用してコレクションに対してMongoDB 検索クエリを実行する方法を学ぶことができます。MongoDB Search を使用すると、MongoDB Atlasでホストされているコレクションに対して全文検索を検索することができます。MongoDB 検索インデックスは、検索の動作とインデックスを作成するフィールドを指定します。
サンプル データ
このガイドの例では、Atlas サンプル データセットにある sample_mflix データベースの movies コレクションを使用します。MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、MongoDBを使い始めるガイドを参照してください。
MongoDB 検索クエリを実行する
このセクションでは、コレクションに対して MongoDB Search クエリを実行するための集計パイプラインを作成する方法を示します。
MongoDB 検索クエリを実行するには、コレクションにMongoDB 検索インデックスを作成する必要があります。MongoDB検索インデックスをプログラムで作成する方法については、インデックスガイドの「MongoDB Search と MongoDB ベクトル検索インデックス」のセクションを参照してください。
MongoDB Search インデックスを作成したら、パイプラインステージの配列に $search ステージを追加して、検索条件を指定します。次に、Aggregate() メソッドを呼び出し、パイプライン配列をパラメータとして渡してください。
Tip
集計操作の詳細については、集計ガイドを参照してください。
注意
Atlas および Community Edition のバージョン要件
$search集計パイプライン演算子は、 MongoDB v. 以降を実行中MongoDB Atlasクラスター、またはMongoDB v.4 2以降を実行中MongoDB Community Edition 82クラスターでホストされているコレクションでのみ使用できます。コレクションはMongoDB Searchインデックスでカバーされている必要があります。必要な設定とこの演算子の機能の詳細については、 MongoDB Search のドキュメント を参照してください。
MongoDB 検索するの例
この例では、次のアクションを実行してMongoDB 検索クエリを実行します。
ドライバーに指示する
$searchステージを作成し、titleフィールドに"Alabama"という単語が含まれるドキュメントを検索します。クエリ結果に
titleフィールドを含めるようにドライバーに指示する$projectステージを作成しますパイプラインのステージを
Aggregate()メソッドに渡し、結果を出力します。
// Defines the pipeline searchStage := bson.D{{"$search", bson.D{ {"text", bson.D{ {"path", "title"}, {"query", "Alabama"}, }}, }}} projectStage := bson.D{{"$project", bson.D{{"title", 1}}}} // Runs the pipeline cursor, err := collection.Aggregate(ctx, mongo.Pipeline{searchStage, projectStage}) if err != nil { panic(err) } // Prints the results var results []bson.D if err = cursor.All(ctx, &results); err != nil { panic(err) } for _, result := range results { fmt.Println(result) }
詳細情報
MongoDB Search について詳しく知りたい方は、MongoDB Search ガイドおよび Atlas ドキュメント内の $search パイプラインステージのリファレンスを参照してください。
API ドキュメント
Aggregate() メソッドの詳細については、API ドキュメントをご覧ください。