Filterausdrücke für die Abfrage-Operation - 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.

Filterausdrücke für die Abfrage-Operation

Wenn Sie die Query-Ergebnisse weiter eingrenzen müssen, können Sie optional einen Filterausdruck angeben. Ein Filterausdruck bestimmt, welche Elemente in den Query-Ergebnissen an Sie zurückgegeben werden. Alle anderen Ergebnisse werden verworfen.

Ein Filterausdruck wird angewendet, nachdem eine Query abgeschlossen ist, aber bevor die Ergebnisse zurückgegeben werden. Folglich verbraucht eine Query unabhängig davon, ob ein Filterausdruck vorhanden ist oder nicht, gleich viel Lesekapazität.

Eine Query-Operation kann bis zu 1 MB an Daten abrufen. Diese Größenbeschränkung gilt, bevor der Filterausdruck ausgewertet wird.

Ein Filterausdruck darf keine Partitionsschlüssel- oder Sortierschlüsselattribute enthalten. Sie müssen diese Attribute in dem Schlüsselbedingungsausdruck und nicht in dem Filterausdruck angeben.

Die Syntax für einen Filterausdruck ist der eines Schlüsselbedingungsausdrucks ähnlich. Filterausdrücke können dieselben Vergleichsoperatoren, Funktionen und logischen Operatoren wie ein Schlüsselbedingungsausdruck verwenden. Darüber hinaus können Filterausdrücke den Nicht-Gleichheitsoperator (<>), denOR-Operator, denCONTAINS-Operator, den IN-Operator, den BEGINS_WITH-Operator, den BETWEEN-Operator, den EXISTS-Operator und denSIZE-Operator verwenden. Weitere Informationen finden Sie unter Schlüsselbedingungsausdrücke für die Abfrage-Operation und Syntax für Filter- und Bedingungsausdrücke.

Beispiel

Im folgenden AWS CLI Beispiel wird die Thread Tabelle nach einem bestimmten ForumName (Partitionsschlüssel) und Subject (Sortierschlüssel) abgefragt. Von den gefundenen Elementen werden nur die beliebtesten Diskussionsthreads zurückgegeben, also nur die Threads mit mehr als einer bestimmten Anzahl von Views.

aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :fn and Subject = :sub" \ --filter-expression "#v >= :num" \ --expression-attribute-names '{"#v": "Views"}' \ --expression-attribute-values file://values.json

Die Argumente für --expression-attribute-values werden in der Datei values.json gespeichert:

{ ":fn":{"S":"Amazon DynamoDB"}, ":sub":{"S":"DynamoDB Thread 1"}, ":num":{"N":"3"} }

Beachten Sie, dass Views ein reserviertes Wort in DynamoDB ist (siehe Reservierte Wörter in DynamoDB), daher verwendet dieses Beispiel #v als Platzhalter. Weitere Informationen finden Sie unter Ausdrucksattributnamen in DynamoDB.

Anmerkung

Ein Filterausdruck entfernt Elemente aus der Query-Ergebnismenge. Verwenden Sie nach Möglichkeit Query nicht, wenn Sie erwarten, eine große Anzahl von Elementen abzurufen, jedoch auch die meisten dieser Elemente verwerfen zu müssen.