Docs Menu
Docs Home
/ / /
Go Driver
/ /

複数ドキュメントの検索

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 クエリ演算子のリファレンス ドキュメントを参照してください。

  • Find()

  • Cursor

戻る

findOne