MongoDB Go ドライバーを使用したネストされた論理クエリ
MongoDB クエリでは、多くの場合、ドキュメントに基づいてフィルタリングするために、ネストされた論理演算子 (AND/OR) を使用する必要があります。複数の基準で。 Go MongoDB ドライバーでは、bson.D および bson.M タイプを使用してネストされた論理クエリを構築できます。
ネストされた OR/AND クエリの構築
ネストされた OR/AND クエリの場合、 bson.D 型を使用して外部論理演算子 ($and など) を表し、 bson.E 要素を渡す必要があります。 それ。各 bson.E 要素はフィールドと値のペアを表します。フィールド名は論理演算子 ($or など)、値は bson.D または bson.A (配列の場合) です。
ネストされた OR/AND クエリの例
MongoDB クエリを考えてみましょう:
{ "$and": { "p": 10, "$or": { "s": 30, "a": 1 } } }
MongoDB ドライバーを使用して Go でこのクエリを表すには、次のコードを使用できます。
filter := bson.D{ {"p", 10}, {"$or", bson.A{ bson.D{{"s", 30}}, bson.D{{"a", 1}}, }}, }
この例では、bson.D は外側の $and 演算子を表し、bson.A はネストされた $or 演算子を表します。 $or 内の各 bson.D はサブクエリを表します。
ネストされたクエリに bson.M を使用する
bson.M タイプを使用してサブクエリを表すこともできます。ネストされたクエリ。 bson.M は、フィールド名とそれに対応する値を含めることができるマップ[文字列]インターフェイス{}です。値は、ネストされたクエリを表す別の bson.M インスタンスにすることができます。
たとえば、上記のクエリは、bson.M を使用して次のように表すことができます。
filter := bson.M{ "p": 10, "$or": bson.A{ bson.M{"s": 30}, bson.M{"a": 1}, }, }
推奨事項
これらのガイドラインに従うことで、MongoDB ドライバーを使用して Go でネストされた OR/AND クエリを効率的に作成できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3