Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich komplexe Filterausdrücke mit mehreren Bedingungen im AWS SDK for Go?

Wie erstelle ich komplexe Filterausdrücke mit mehreren Bedingungen im AWS SDK for Go?

DDD
DDDOriginal
2024-10-28 21:05:30479Durchsuche

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

So fügen Sie mithilfe des AWS SDK for Go mehrere Bedingungen zu FilterExpression hinzu

Das AWS SDK for Go bietet einen Ausdrucksgenerator zur Vereinfachung der Aufgabe Erstellen komplexer Filterausdrücke für DynamoDB-Scan-Vorgänge. Standardmäßig wird beim Versuch, mit dem Ausdrucks-Builder mehrere Bedingungen hinzuzufügen, die vorherige Bedingung überschrieben, sodass Sie nur noch einen einzigen Filter haben.

Ansatz mithilfe der ConditionBuilder-Struktur

Um diese Einschränkung zu überwinden bietet die ConditionBuilder-Struktur Methoden zum Kombinieren mehrerer Bedingungen mithilfe logischer Operatoren. Der folgende Code zeigt beispielsweise, wie Sie mit der And()-Methode mehrere Bedingungen hinzufügen:

<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>

Alternativ können Sie die Methoden Or() und Not() verwenden, um Bedingungen mit OR- und NOT-Logik zu kombinieren bzw..

Alternativer Ansatz: Manuelle Ausdruckserstellung

Wenn Sie den Filterausdruck lieber manuell erstellen möchten, können Sie die Funktion expression.New() verwenden, um einen zu erstellen Ausdrucksobjekt und hängen Sie dann Bedingungen mit den Methoden And() oder Or() an. Zum Beispiel:

<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>

Dokumentationsreferenz

Weitere Informationen zur Verwendung des Expression Builders finden Sie in der AWS SDK for Go-Dokumentation zu [ExpressionBuilder](https: //pkg.go.dev/github.com/aws/aws-sdk-go/aws/dynamodb/expression#ConditionBuilder).

Das obige ist der detaillierte Inhalt vonWie erstelle ich komplexe Filterausdrücke mit mehreren Bedingungen im AWS SDK for Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn