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 について考えてみましょうquery:
{ "$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 クエリを効率的に作成できます。
以上がMongoDB Go ドライバーを使用してネストされた OR/AND クエリを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。