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 サイトの他の関連記事を参照してください。