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.
KeyConditions (Legacy)
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 verwendetenComparisonOperatorab.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:
aist größer alsAundaist 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
KeyConditionswerden nur die folgenden Vergleichsoperatoren unterstützt:EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEENEs folgen Beschreibungen dieser Vergleichsoperatoren.
-
EQ: gleich.AttributeValueListkann nur einAttributeValuevom 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.AttributeValueListkann 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.AttributeValueListkann nur einAttributeValuevom 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.AttributeValueListkann 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.AttributeValueListkann 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.AttributeValueListkann nur einAttributeValuevom 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.AttributeValueListmuss 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"} }'