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.
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 KeyConditionExpressionstattdessen verwenden..
Der alte Bedingungsparameter KeyConditions
enthält Auswahlkriterien für eine Query
-Operation. Für eine Abfrage in einer Tabelle sind nur Bedingungen für die Primärschlüsselattribute der Tabelle möglich. Sie müssen den Namen und Wert des Partitionsschlüssels als EQ
-Bedingung angeben. Sie können optional eine zweite Bedingung für den Sortierschlüssel angeben.
Anmerkung
Wenn Sie keine Sortierschlüsselbedingung festlegen, werden alle Elemente, die mit dem Partitionsschlüssel übereinstimmen, abgerufen. Wenn ein FilterExpression
oder QueryFilter
vorhanden ist, wird er angewendet, nachdem die Elemente abgerufen wurden.
Für eine Abfrage in einem Index sind nur Bedingungen für die Indexschlüsselattribute möglich. Sie müssen den Namen und Wert des Indexpartitionsschlüssels als EQ
-Bedingung angeben. Sie können optional eine zweite Bedingung für den Indexsortierschlüssel angeben.
Jedes KeyConditions
-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 vom verwendetenComparisonOperator
ab.Beim Zahlentyp sind Wertevergleiche numerisch.
Vergleiche von Zeichenfolgenwerten für größer als, gleich oder kleiner als basieren auf Unicode mit UTF-8-Binärkodierung. Beispiel:
a
ist größer alsA
unda
ist größer alsB
.Beim Binärtyp betrachtet DynamoDB beim Vergleichen der binären Werte jedes Byte der Binärdaten ohne Vorzeichen.
-
ComparisonOperator
– Ein Vergleichsoperator zum Auswerten der Attribute. Zum Beispiel: ist gleich, größer als, kleiner als.Für
KeyConditions
werden nur die folgenden Vergleichsoperatoren unterstützt:EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
Es folgen Beschreibungen dieser Vergleichsoperatoren.
-
EQ
: gleich.AttributeValueList
kann nur einAttributeValue
vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element einAttributeValue
-Element eines anderen Typs enthält, als in der Anforderung angegeben, stimmt der Wert nicht überein. Beispiel:{"S":"6"}
ist nicht gleich{"N":"6"}
. Auch,{"N":"6"}
ist nicht gleich{"NS":["6", "2", "1"]}
. -
LE
: kleiner als oder gleich.AttributeValueList
kann nur einAttributeValue
-Element vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element einAttributeValue
-Element eines anderen Typs enthält, als in der Anforderung angegeben, stimmt der Wert nicht überein. Beispiel:{"S":"6"}
ist nicht gleich{"N":"6"}
. Auch,{"N":"6"}
entspricht nicht{"NS":["6", "2", "1"]}
. -
LT
: kleiner als.AttributeValueList
kann nur einAttributeValue
vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element einAttributeValue
-Element eines anderen Typs enthält, als in der Anforderung angegeben, stimmt der Wert nicht überein. Beispiel:{"S":"6"}
ist nicht gleich{"N":"6"}
. Auch,{"N":"6"}
entspricht nicht{"NS":["6", "2", "1"]}
. -
GE
: größer als oder gleich.AttributeValueList
kann nur einAttributeValue
-Element vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element einAttributeValue
-Element eines anderen Typs enthält, als in der Anforderung angegeben, stimmt der Wert nicht überein. Beispiel:{"S":"6"}
ist nicht gleich{"N":"6"}
. Auch entspricht{"N":"6"}
nicht{"NS":["6", "2", "1"]}
. -
GT
: größer als.AttributeValueList
kann nur einAttributeValue
-Element vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element einAttributeValue
-Element eines anderen Typs enthält, als in der Anforderung angegeben, stimmt der Wert nicht überein. Beispiel:{"S":"6"}
ist nicht gleich{"N":"6"}
. Auch,{"N":"6"}
entspricht nicht{"NS":["6", "2", "1"]}
. -
BEGINS_WITH
: Prüft auf ein Präfix.AttributeValueList
kann nur einAttributeValue
vom Typ Zeichenfolge oder Binärwert (keine Zahl oder Satztyp) sein. Das Zielattribut des Vergleichs muss vom Typ Zeichenfolge oder Binärwert sein (nicht Zahl oder Satz). -
BETWEEN
: Größer als oder gleich dem ersten Wert und kleiner als oder gleich dem zweiten Wert.AttributeValueList
muss zweiAttributeValue
-Elemente desselben Typs enthalten, und zwar Zeichenfolge, Zahl oder Binärwert (kein Satztyp). Es kommt zu einer Übereinstimmung mit dem Zielattribut, wenn der Zielwert größer als oder gleich dem ersten Element und kleiner als oder gleich dem zweiten Element ist. Wenn ein Element einAttributeValue
-Element eines anderen Typs enthält, als in der Anforderung angegeben, stimmt der Wert nicht überein. Beispiel:{"S":"6"}
stimmt nicht mit{"N":"6"}
überein. Auch entspricht{"N":"6"}
nicht{"NS":["6", "2", "1"]}
.
-
KeyConditionExpressionStattdessen verwenden — Beispiel
Angenommen, Sie möchten mehrere Elemente mit demselben Partitionsschlüssel aus der Tabelle Music abrufen. Sie könnten eine Query
Anfrage mit einem KeyConditions
Parameter verwenden, wie in diesem AWS CLI Beispiel:
aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist":{ "ComparisonOperator":"EQ", "AttributeValueList": [ {"S": "No One You Know"} ] }, "SongTitle":{ "ComparisonOperator":"BETWEEN", "AttributeValueList": [ {"S": "A"}, {"S": "M"} ] } }'
Sie können stattdessen KeyConditionExpression
verwenden.
aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a AND SongTitle BETWEEN :t1 AND :t2' \ --expression-attribute-values '{ ":a": {"S": "No One You Know"}, ":t1": {"S": "A"}, ":t2": {"S": "M"} }'