ホームページ  >  記事  >  バックエンド開発  >  AWS SDK for Go で複数の条件を含む複雑なフィルター式を作成する方法は?

AWS SDK for Go で複数の条件を含む複雑なフィルター式を作成する方法は?

DDD
DDDオリジナル
2024-10-28 21:05:30479ブラウズ

How to Create Complex Filter Expressions with Multiple Conditions in AWS SDK for Go?

AWS SDK for Go を使用して FilterExpression に複数の条件を追加する方法

AWS SDK for Go は、次のタスクを簡素化するための式ビルダーを提供します。 DynamoDB スキャン操作用の複雑なフィルター式を作成します。デフォルトでは、式ビルダーを使用して複数の条件を追加しようとすると、前の条件が上書きされ、単一のフィルターが残ります。

ConditionBuilder 構造を使用したアプローチ

この制限を克服するには、ConditionBuilder 構造は、論理演算子を使用して複数の条件を組み合わせるメソッドを提供します。たとえば、次のコードは、And() メソッドを使用して複数の条件を追加する方法を示しています。

<code class="go">cond1 := expression.Name("foo").Equal(expression.Value(5))
cond2 := expression.Name("bar").Equal(expression.Value(6))
expr, err := expression.NewBuilder().
    WithCondition(cond1.And(cond2)).
    Build()</code>

または、Or() メソッドと Not() メソッドを使用して、条件を OR ロジックと NOT ロジックで組み合わせることができます。

代替アプローチ: 手動による式の構築

フィルター式を手動で構築したい場合は、expression.New() 関数を使用して、 Expression オブジェクトを作成し、And() または Or() メソッドを使用して条件を追加します。例:

<code class="go">expr := expression.New()
expr.AndWith(expression.Name("foo").Equal(expression.Value(5)))
expr.OrWith(expression.Name("bar").Equal(expression.Value(6)))</code>

ドキュメントリファレンス

式ビルダーの使用の詳細については、[ExpressionBuilder](https: //pkg.go.dev/github.com/aws/aws-sdk-go/aws/dynamodb/expression#ConditionBuilder).

以上がAWS SDK for Go で複数の条件を含む複雑なフィルター式を作成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。