複数ドキュメントの検索
Find()
メソッドを使用すると、コレクション内の複数のドキュメントを見つけることができます。
例
Tip
この例の実行方法については、「 の使用例」をお読みください。
この例では、 restaurants
コレクション内のドキュメントのモデルとして次の Restaurant
構造体を使用します。
type Restaurant struct { ID primitive.ObjectID `bson:"_id"` Name string RestaurantId string `bson:"restaurant_id"` Cuisine string Address interface{} Borough string Grades interface{} }
次の例では、 cuisine
が"Italian"
であるrestaurants
コレクション内のドキュメントに一致しており、一致したドキュメントを参照するカーソルを返し、ドキュメントをスライスに解凍します。
coll := client.Database("sample_restaurants").Collection("restaurants") // Creates a query filter to match documents in which the "cuisine" // is "Italian" filter := bson.D{{"cuisine", "Italian"}} // Retrieves documents that match the query filter cursor, err := coll.Find(context.TODO(), filter) if err != nil { panic(err) } // Unpacks the cursor into a slice var results []Restaurant if err = cursor.All(context.TODO(), &results); err != nil { panic(err) }
期待される結果
完全な例を実行すると、次のドキュメントが出力され、results
変数に Restaurant
構造体として保存されます。
// results truncated ... { ... , "Name" : "Epistrophy Cafe", "RestaurantId": "41117553", "Cuisine" : "Italian", ... }, { ... , "Name" : "Remi", "RestaurantId": "41118090", "Cuisine" : "Italian", ... }, { ... , "Name" : "Sant Ambroeus", "RestaurantId": "41120682", "Cuisine" : "Italian", ... }, ...
詳細情報
クエリフィルターの指定と潜在的なエラーの処理の詳細については、「データの取得」を参照してください。
クエリ演算子の詳細については、MongoDB クエリ演算子のリファレンス ドキュメントを参照してください。