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.
Expressions de condition et de filtre, opérateurs et fonctions dans DynamoDB
Manipulez les données d’une table DynamoDB à l’aide des opérations PutItem, UpdateItem et DeleteItem. Pour ces opérations de manipulation de données, vous pouvez préciser une expression de condition afin de déterminer les éléments à modifier. Si l’expression de condition a la valeur true, l’opération aboutit. Sinon, l’opération échoue.
Cette section traite des fonctions et mots clés intégrés pour l’écriture des expressions de filtre et de condition dans Amazon DynamoDB. Pour en savoir plus sur les fonctions et la programmation avec DynamoDB, consultez Programmation avec DynamoDB et le AWS Kits SDK et le guide de référence de l’API DynamoDB.
Rubriques
Syntaxe des expressions de filtre et de condition
Dans le résumé syntaxique suivant, an operand peut être le suivant :
-
Nom d’attribut de niveau supérieur, par exemple
Id,Title,DescriptionouProductCategory -
Chemin d’accès au document référençant un attribut imbriqué
condition-expression ::=operandcomparatoroperand|operandBETWEENoperandANDoperand|operandIN (operand(','operand(, ...) )) | function |conditionANDcondition|conditionORcondition| NOTcondition| (condition) comparator ::= = | <> | < | <= | > | >= function ::= attribute_exists (path) | attribute_not_exists (path) | attribute_type (path,type) | begins_with (path,substr) | contains (path,operand) | size (path)
Comparaisons
Comparez un opérande à une valeur unique à l’aide de ces comparateurs :
-
— Vrai si la valeura=baest égale àb. -
— Vrai sia<>bace n'est pas égal àb. -
— Vrai si la valeura<baest inférieure àb. -
— Vrai si la valeura<=baest inférieure ou égale àb. -
— Vrai si la valeura>baest supérieure àb. -
— Vrai si la valeura>=baest supérieure ou égale àb.
Comparez un opérande à une plage de valeurs ou une liste énumérée de valeurs à l’aide des mots clés BETWEEN et IN :
-
— Vrai si la valeuraBETWEENbANDcaest supérieure ou égale àb, et inférieure ou égale àc. -
— Vrai si elleaIN (b,c,d)aest égale à n'importe quelle valeur de la liste, par exemplebc, ou.dLa liste peut comporter jusqu’à 100 valeurs séparées par des virgules.
Pour filtrer un attribut booléen, comparez-le à une valeur booléenne à l'aide de l'<>opérateur = ou. Vous ne pouvez pas référencer l'attribut seul en tant que condition. Indiquez la valeur booléenne dans les valeurs des attributs d'expression. Par exemple, l'expression de filtre suivante renvoie uniquement les éléments dont isVisible l'attribut est true :
--filter-expression "isVisible = :visible" \ --expression-attribute-values '{":visible": {"BOOL": true}}'
Fonctions
Déterminez si un attribut existe dans un élément ou évaluez la valeur d’un attribut à l’aide des fonctions suivantes. Ces noms de fonction respectent la casse. Pour un attribut imbriqué, vous devez fournir le chemin d’accès au document complet.
| Fonction | Description |
|---|---|
|
|
True si l’élément comporte l’attribut spécifié par Un attribut dont la valeur stockée est de type nul ( Exemple : Vérifier si un élément de la table
|
|
|
True si l’attribut spécifié par Exemple : Vérifier si un élément possède un attribut
|
|
|
True si l’attribut à l’emplacement spécifié est d’un type de données particulier. Le paramètre
Vous devez utiliser une valeur d’attribut d’expression pour le paramètre Exemple : Vérifier si l’attribut
Vous devez utiliser une valeur d’attribut d’expression pour le paramètre |
|
|
True si l’attribut spécifié par Exemple : Vérifier si les tout premiers caractères de l’URL de l’image de vue avant sont
La valeur d’attribut d’expression |
|
|
True si l’attribut spécifié par
Si l’attribut spécifié par Le chemin d’accès et l’opérande doivent être distincts. Autrement dit, Exemple : Vérifier si l’attribut
La valeur d’attribut d’expression Exemple : Vérifier si le produit est disponible en rouge.
La valeur d’attribut d’expression |
|
|
Renvoie un nombre qui représente la taille d’un attribut. Voici les types de données valides à utiliser avec Si l’attribut est de type Exemple : Vérifier si la longueur de la chaîne
Si l’attribut est de type Exemple : supposez que l’élément
Si l’attribut est un type de données Exemple : Vérifier si le produit est disponible dans plusieurs couleurs. La valeur d’attribut d’expression
Si l’attribut est de type Exemple : Vérifier si le nombre de révisions
|
Évaluations logiques
Effectuez les évaluations logiques à l’aide des mots clés AND, OR et NOT. Dans la liste suivante, a et b représentent les conditions à évaluer.
-
— Vrai siaANDbaet sibles deux sont vrais. -
— Vrai si l'unaORbaou l'autreb(ou les deux) sont vrais. -
NOT— Vrai siaac'est faux. Faux siac'est vrai.
Voici un exemple de code avec AND dans une opération.
dynamodb-local (*)> select * from exprtest where a > 3 and a <
5;
Parenthèses
Modifiez la priorité d’une évaluation logique à l’aide de parenthèses. Supposons, par exemple, que les conditions b B a et C soient vraies et que cette condition c soit fausse. L’expression suivante a la valeur true :
-
aORbANDc
Toutefois, si vous placez une condition entre parenthèses, elle est évaluée en premier. Par exemple, l’expression suivante a la valeur false :
-
(aORb) ANDc
Note
Vous pouvez imbriquer des parenthèses dans une expression. Les parenthèses les plus intérieures sont évaluées en premier.
Voici un exemple de code avec des parenthèses dans une évaluation logique.
dynamodb-local (*)> select * from exprtest where attribute_type(b, string) or
( a = 5 and c = “coffee”);
Priorité des conditions
DynamoDB évalue les conditions de gauche à droite à l’aide des règles de priorité suivantes :
-
= <> < <= > >= -
IN -
BETWEEN -
attribute_exists attribute_not_exists begins_with contains -
Parenthèses
-
NOT -
AND -
OR