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.
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 erhalten Sie unter Wichtige Bedingungsausdrücke für den Query-Vorgang in DynamoDB 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 begins_with :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 Namen von Ausdrucksattributen (Aliase) 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.