Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
KeyConditions (héritage)
Note
Dans la mesure du possible, nous vous recommandons d'utiliser les nouveaux paramètres d'expression plutôt que ces paramètres hérités. Pour de plus amples informations, veuillez consulter Utilisation d'expressions dans DynamoDB. Pour obtenir des informations précises sur le nouveau paramètre qui remplace celui-ci, utilisez KeyConditionExpressionplutôt..
Le paramètre conditionnel hérité KeyConditions
contient des critères de sélection pour une opération Query
. Pour une requête sur une table, vous ne pouvez avoir de conditions que sur les attributs de clé primaire de table. Vous devez fournir le nom et la valeur de la clé de partition comme condition EQ
. Vous pouvez également fournir une deuxième condition pour la clé de tri.
Note
Si vous ne fournissez pas de condition de clé de tri, tous les éléments correspondant à la clé de partition sont extraits. Si les paramètres FilterExpression
ou un QueryFilter
sont présents, ils sont appliqués une fois les éléments extraits.
Pour une requête sur un index, vous ne pouvez avoir de conditions que sur les attributs de clé d'index. Vous devez fournir le nom et la valeur de la clé de partition d'index comme condition EQ
. Vous pouvez également fournir une deuxième condition pour la clé de tri d'index.
Chaque élément KeyConditions
se compose d'un nom d'attribut à comparer, ainsi que de ce qui suit :
-
AttributeValueList
- Une ou plusieurs valeurs à évaluer par rapport à l'attribut fourni. Le nombre de valeurs dans la liste dépend de l'opérateurComparisonOperator
utilisé.Pour le type Nombre, les comparaisons de valeurs sont numériques.
Les comparaisons de valeurs de chaîne supérieures, égales ou inférieures à sont basées sur le codage Unicode binaire UTF -8. Par exemple,
a
est supérieur àA
, eta
est supérieur àB
.Pour le type Binaire, DynamoDB traite chaque octet des données binaires comme non signé lors de la comparaison de valeurs binaires.
-
ComparisonOperator
- Comparateur pour l'évaluation d'attributs. Par exemple : égal à, supérieur à, et inférieur à.Pour
KeyConditions
, seuls les opérateurs de comparaison suivants sont pris en charge :EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
Voici une description de ces opérateurs de comparaison.
-
EQ
: égal.AttributeValueList
ne peut contenir qu'un seul élémentAttributeValue
de type Chaîne, Nombre ou Binaire (pas Ensemble). Si une liste contient un élémentAttributeValue
d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple,{"S":"6"}
n'est pas égal à{"N":"6"}
. De même,{"N":"6"}
n'est pas égal à{"NS":["6", "2", "1"]}
. -
LE
: inférieur ou égal.AttributeValueList
ne peut contenir qu'un seul élémentAttributeValue
de type Chaîne, Nombre ou Binaire (pas Ensemble). Si une liste contient un élémentAttributeValue
d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple,{"S":"6"}
n'est pas égal à{"N":"6"}
. De même,{"N":"6"}
n'est pas comparable à{"NS":["6", "2", "1"]}
. -
LT
: inférieur.AttributeValueList
ne peut contenir qu'un seul élémentAttributeValue
de type Chaîne, Nombre ou Binaire (pas Ensemble). Si une liste contient un élémentAttributeValue
d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple,{"S":"6"}
n'est pas égal à{"N":"6"}
. De même,{"N":"6"}
ne se compare pas à{"NS":["6", "2", "1"]}
. -
GE
: supérieur ou égal.AttributeValueList
ne peut contenir qu'un seul élémentAttributeValue
de type Chaîne, Nombre ou Binaire (pas Ensemble). Si une liste contient un élémentAttributeValue
d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple,{"S":"6"}
n'est pas égal à{"N":"6"}
. De même,{"N":"6"}
ne se compare pas à{"NS":["6", "2", "1"]}
. -
GT
: supérieur.AttributeValueList
ne peut contenir qu'un seul élémentAttributeValue
de type Chaîne, Nombre ou Binaire (pas Ensemble). Si une liste contient un élémentAttributeValue
d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple,{"S":"6"}
n'est pas égal à{"N":"6"}
. De même,{"N":"6"}
n'est pas comparable à{"NS":["6", "2", "1"]}
. -
BEGINS_WITH
: vérifie la présence d'un préfixe.AttributeValueList
ne peut contenir qu'un seul élémentAttributeValue
de type Chaîne ou Binaire (pas Nombre ou Ensemble). L'attribut cible de la comparaison doit être de type Chaîne ou Binaire (pas Nombre ou Ensemble). -
BETWEEN
: supérieur ou égal à la première valeur, et inférieur ou égal à la deuxième.AttributeValueList
doit contenir deux élémentsAttributeValue
du même type, Chaîne, Nombre ou Binaire (pas Ensemble). Un attribut cible correspond si la valeur cible est supérieure ou égale au premier élément, et inférieure ou égale au deuxième. Si une liste contient un élémentAttributeValue
d'un type différent de celui spécifié dans la demande, la valeur ne correspond pas. Par exemple,{"S":"6"}
n'est pas comparable à{"N":"6"}
. De même,{"N":"6"}
n'est pas comparable à{"NS":["6", "2", "1"]}
.
-
Utiliser à KeyConditionExpressionla place — Exemple
Supposons que vous souhaitiez extraire plusieurs éléments avec la même clé de partition à partir de la table Music. Vous pouvez utiliser une Query
requête avec un KeyConditions
paramètre, comme dans cet AWS CLI exemple :
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"} ] } }'
Vous pouvez utiliser KeyConditionExpression
à la place :
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"} }'