如何使用適用於Go 的AWS 開發工具包向FilterExpression 添加多個條件
適用於Go 的AWS 開發工具包提供了一個表達式產生器,用於簡化以下任務:為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() 函數建立一個表達式對象,然後使用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中文網其他相關文章!