Retrieve Distinct Values
Overview
このガイドでは、単一のコレクション全体で指定されたフィールドの個別の値を取得する方法を学習できます。
サンプル データ
このガイドの例を実行するには、次のスニペットを使用してサンプルデータを tea.ratings
コレクションにロードします。
coll := client.Database("tea").Collection("ratings") docs := []interface{}{ bson.D{{"type", "Masala"}, {"rating", 10}}, bson.D{{"type", "Matcha"}, {"rating", 7}}, bson.D{{"type", "Masala"}, {"rating", 4}}, bson.D{{"type", "Oolong"}, {"rating", 9}}, bson.D{{"type", "Matcha"}, {"rating", 5}}, bson.D{{"type", "Earl Grey"}, {"rating", 8}}, bson.D{{"type", "Oolong"}, {"rating", 3}}, bson.D{{"type", "Matcha"}, {"rating", 6}}, bson.D{{"type", "Earl Grey"}, {"rating", 4}}, } result, err := coll.InsertMany(context.TODO(), docs) if err != nil { panic(err) } fmt.Printf("Number of documents inserted: %d\n", len(result.InsertedIDs))
Tip
存在しないデータベースとコレクション
書き込み操作を実行するときに必要なデータベースとコレクションが存在しない場合は、サーバーが暗黙的にそれらを作成します。
各ドキュメントには、 フィールドとtype
rating
フィールドに対応するお茶の種類の評価が含まれています。
distinct
単一のコレクション全体で指定されたフィールドの個別の値を検索するには、次のパラメータをDistinct()
メソッドに渡します。
個別の値が必要なフィールド名
一致するドキュメントを指定する
non-nil
クエリフィルター
Tip
空のクエリフィルターを指定すると、メソッドはコレクション内のすべてのドキュメントを照合します。
動作の変更
DistinctOptions
を渡すことで、 Distinct()
メソッドの動作を変更できます。 DistinctOptions
を指定しない場合、ドライバーは各オプションのデフォルト値を使用します。
DistinctOptions
タイプでは、次の方法でオプションを設定できます。
方式 | 説明 |
---|---|
SetCollation() | The type of language collation to use when sorting results. Default: nil |
SetMaxTime() | The maximum amount of time that the query can run on the server. Default: nil |
例
次の例ではすべてのドキュメントを照合し、 Distinct()
メソッドを使用してtype
フィールドの個別の値を出力します。
results, err := coll.Distinct(context.TODO(), "type", bson.D{}) if err != nil { panic(err) } for _, result := range results { fmt.Println(result) }
詳細情報
個別の値を取得する実行可能な例については、「フィールドの個別の値を取得する 」を参照してください。
クエリフィルターの作成の詳細については、「クエリの指定 」を参照してください。
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。