首頁 >後端開發 >Golang >如何在AWS SDK for Go DynamoDB中實現多條件過濾?

如何在AWS SDK for Go DynamoDB中實現多條件過濾?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-29 11:17:021052瀏覽

How to Implement Multi-Condition Filtering in AWS SDK for Go DynamoDB?

AWS SDK for Go DynamoDb 的多條件過濾,並在FilterExpression 新增多個條件

問題:
使用者需要一種方法使用表達式產生器中的多個條件過濾DynamoDB 掃描。初始實作會涵蓋先前的條件,限制了多條件過濾功能。

解:
使用 ConditionBuilder 結構體,開發者可以透過 And、Or 和 And 增加多個條件不是方法。範例如下:

<code class="go">package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/dynamodb"
    "github.com/aws/aws-sdk-go/service/dynamodb/expression"
)

func main() {
    sess := session.Must(session.NewSessionWithOptions(
        session.Options{
            SharedConfigState: session.SharedConfigEnable,
        },
    ))

    svc := dynamodb.New(sess, &aws.Config{
        Region: aws.String("us-west-1"),
    })

    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()
    if err != nil {
        fmt.Println(err)
    }

    input := &dynamodb.ScanInput{
        ExpressionAttributeNames:  expr.Names(),
        ExpressionAttributeValues: expr.Values(),
        FilterExpression:          expr.Filter(),
        TableName:                 aws.String("Music"),
    }

    _, err = svc.Scan(input)
    if err != nil {
        fmt.Println(err)
    }
}</code>

文件:

有關使用ExpressionBuilder 進行多條件過濾的更多信息,可以參考官方文件:[https:// pkg. go.dev/github.com/aws/aws-sdk-go/aws/session/credentials#Values](https://pkg.go.dev/github.com/aws/aws-sdk-go/service /dynamodb /表達式#和)

以上是如何在AWS SDK for Go DynamoDB中實現多條件過濾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn