ホームページ > バックエンド開発 > Golang > AWS SDK for Go DynamoDB で複数条件フィルタリングを実装するにはどうすればよいですか?

AWS SDK for Go DynamoDB で複数条件フィルタリングを実装するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-29 11:17:02
オリジナル
1088 人が閲覧しました

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

FilterExpression に複数の条件を追加した AWS SDK for Go DynamoDb の複数条件フィルタリング

問題:
ユーザーは次の方法が必要です式ビルダー内の複数の条件を使用して DynamoDB スキャンをフィルターします。初期実装では前の条件が上書きされ、複数条件のフィルタリング機能が制限されます。

解決策:
ConditionBuilder 構造体を使用すると、開発者は And、Or、およびメソッドではありません。以下に例を示します:

<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/expression#And)

以上がAWS SDK for Go DynamoDB で複数条件フィルタリングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート