Overview
このガイドでは、 Goドライバーを使用してコレクションに対して Atlas Search クエリを実行する方法を学習できます。Atlas Search を使用すると、 MongoDB Atlasでホストされているコレクションに対して全文検索を実行できます。Atlas Search インデックスは、検索の動作とインデックスするフィールド を指定します。
サンプル データ
このガイドの例では、Atlas サンプル データセットの sample_mflix
データベースの movies
コレクションを使用します。MongoDB Atlas クラスターを作成し、サンプル データセットをロードする方法については、「Atlas スタートガイド」をご覧ください。
Atlas Search クエリの実行
このセクションでは、コレクションに対して Atlas Search クエリを実行するための集計パイプラインの作成方法を示します。
Atlas Search クエリを実行するには、コレクションに Atlas Searchインデックスを作成する必要があります。プログラムによって Atlas Searchインデックスを作成する方法については、 インデックスガイドの golang-atlas-search-indexs セクションを参照してください。
Atlas Searchインデックスを作成したら、パイプラインステージの配列に $search
ステージを追加して、検索条件を指定します。次に、Aggregate()
メソッドを呼び出し、パイプライン配列をパラメーターとして渡します。
Tip
集計操作の詳細については、集計ガイドを参照してください。
Atlas Search の例
この例では、次のアクションを実行して Atlas Search クエリを実行します。
ドライバーに指示する
$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) }
{ _id: new ObjectId('...'), title: 'Alabama Moon' } { _id: new ObjectId('...'), title: 'Crazy in Alabama' } { _id: new ObjectId('...'), title: 'Sweet Home Alabama' }
詳細情報
Atlas Search の詳細については、Atlas Search ガイドと Atlas ドキュメントの $searchパイプラインステージに関する参照を参照してください。
API ドキュメント
Aggregate()
メソッドの詳細については、API ドキュメントをご覧ください。