

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)
<a name="LegacyConditionalParameters.KeyConditions"></a>

**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](Expressions.md). Spezifische Informationen zu dem neuen Parameter, der diesen ersetzt, finden Sie unter [*KeyConditionExpression*stattdessen verwenden.](#KeyConditionExpression.instead). 

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 Zeichenfolgenwerten für größer als, gleich oder kleiner als basieren auf Unicode mit UTF-8-Binärkodierung. 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"]}`. 

## *KeyConditionExpression*Stattdessen verwenden — Beispiel
<a name="KeyConditionExpression.instead"></a>

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"}
    }'
```