AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

MongoDB 検索クエリを実行する

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

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

このセクションでは、コレクションに対して MongoDB Search クエリを実行するための集計パイプラインを作成する方法を示します。

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

MongoDB Search インデックスを作成したら、パイプラインステージの配列に $search ステージを追加して、検索条件を指定します。次に、Aggregate() メソッドを呼び出し、パイプライン配列をパラメータとして渡してください。

Tip

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

注意

Atlas および Community Edition のバージョン要件

$search 集計パイプライン演算子は、 MongoDB v4.2 以降を実行中MongoDB Atlasクラスター、またはMongoDB v8.2 以降を実行中MongoDB Community Editionクラスターでホストされているコレクションでのみ使用できます。コレクションはMongoDB 検索インデックスでカバーされている必要があります。必要な設定とこの演算子の機能の詳細については、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)
}
{
_id: new ObjectId('...'),
title: 'Alabama Moon'
}
{
_id: new ObjectId('...'),
title: 'Crazy in Alabama'
}
{
_id: new ObjectId('...'),
title: 'Sweet Home Alabama'
}

MongoDB Search について詳しく知りたい方は、MongoDB Search ガイドおよび Atlas ドキュメント内の $search パイプラインステージのリファレンスを参照してください。

Aggregate() メソッドの詳細については、API ドキュメントをご覧ください。