QueryFilter (Vermächtnis) - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

QueryFilter (Vermächtnis)

Anmerkung

Es wird empfohlen, nach Möglichkeit die neuen Ausdrucksparameter anstelle der alten Parameter zu verwenden. Weitere Informationen finden Sie unter Verwenden von Ausdrücken in DynamoDB. Spezifische Informationen zu dem neuen Parameter, der diesen ersetzt, finden Sie unter FilterExpressionstattdessen verwenden..

In einer Query-Operation handelt es sich bei dem alten Bedingungsparameter QueryFilter um eine Bedingung, die die Abfrageergebnisse auswertet, nachdem die Elemente gelesen wurden, und die nur die gewünschten Werte zurückgibt.

Dieser Parameter unterstützt keine Attribute vom Typ Liste oder Zuordnung.

Anmerkung

Ein QueryFilter wird angewendet, nachdem die Elemente gelesen wurden. Der Filterprozess belegt keine zusätzlichen Lesekapazitätseinheiten.

Wenn Sie mehr als eine Bedingung im QueryFilter-Mapping angeben, müssen alle Bedingungen standardmäßig mit True ausgewertet werden. Mit anderen Worten, die Bedingungen werden mithilfe des Operators kombiniert. AND (Sie können dasConditionalOperator (Vermächtnis)-Parameter auf ODER zu den Bedingungen verwenden. In diesem Fall müssen nicht alle, sondern mindestens eine der Bedingungen mit True ausgewertet werden.)

Hinweis: QueryFilter lässt keine Schlüsselattribute zu. Sie können keine Filterbedingung für einen Partitionsschlüssel oder Sortierschlüssel definieren.

Jedes QueryFilter-Element besteht aus einem zu vergleichenden Attributnamen zusammen mit Folgendem:

  • AttributeValueList – Ein oder mehrere Werte, die anhand des angegebenen Attributs ausgewertet werden sollen. Die Anzahl der Werte in der Liste hängt von dem in ComparisonOperator angegebenen Operator ab.

    Beim Zahlentyp sind Wertevergleiche numerisch.

    Vergleiche von Zeichenkettenwerten für größer als, gleich oder kleiner als basieren auf der UTF Binärcodierung -8. Beispiel: a ist größer als A und a ist größer als B.

    Beim Binärtyp betrachtet DynamoDB jedes Byte der Binärdaten beim Vergleichen der binären Werte ohne Vorzeichen.

    Hinweise zur Angabe von Datentypen in finden Sie JSON unter. DynamoDB auf niedriger Ebene API

  • ComparisonOperator – Ein Vergleichsoperator zum Auswerten der Attribute. Zum Beispiel: ist gleich, größer als, kleiner als.

    Die folgenden Vergleichsoperatoren sind verfügbar:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

FilterExpressionStattdessen verwenden — Beispiel

Angenommen, Sie möchten die Tabelle Music abfragen und wenden eine Bedingung auf die übereinstimmenden Elemente an. Sie können eine Query-Anforderung mit dem Parameter QueryFilter wie in diesem AWS CLI -Beispiel verwenden:

aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist": { "ComparisonOperator": "EQ", "AttributeValueList": [ {"S": "No One You Know"} ] } }' \ --query-filter '{ "Price": { "ComparisonOperator": "GT", "AttributeValueList": [ {"N": "1.00"} ] } }'

Sie können stattdessen FilterExpression verwenden.

aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a' \ --filter-expression 'Price > :p' \ --expression-attribute-values '{ ":p": {"N":"1.00"}, ":a": {"S":"No One You Know"} }'