KeyConditions (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.

KeyConditions (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 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 verwendeten ComparisonOperator ab.

    Beim Zahlentyp sind Wertevergleiche numerisch.

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

    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 ein AttributeValue vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element ein AttributeValue-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 ein AttributeValue-Element vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element ein AttributeValue-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 ein AttributeValue vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element ein AttributeValue-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 ein AttributeValue-Element vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element ein AttributeValue-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 ein AttributeValue-Element vom Typ Zeichenfolge, Zahl oder Binärwert (kein Satztyp) sein. Wenn ein Element ein AttributeValue-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 ein AttributeValue 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 zwei AttributeValue-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 ein AttributeValue-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"]}.

Verwenden Sie KeyConditionExpressionstattdessen — 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"} }'