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 les kits AWS 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é de syntaxe suivant, un opérande peut avoir l’une des valeurs suivantes :
-
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 :
-
– True sia=baest égal àb. -
– True sia<>baest différent deb. -
– True sia<baest inférieur àb. -
– True sia<=baest inférieur ou égal àb. -
– True sia>baest supérieur àb. -
– True sia>=baest supérieur ou égal à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 :
-
– True siaBETWEENbANDcaest supérieur ou égal àb, et inférieur ou égal àc. -
– True siaIN (b,c,d)aest égal à toute valeur figurant dans la liste, par exempleb,coud. La liste peut comporter jusqu’à 100 valeurs séparées par des virgules.
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 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.
-
– True siaANDbaetbont tous deux la valeur true. -
– True siaORbaoub(ou les deux) a (ou ont) la valeur true. -
NOT– True siaaa la valeur false. False siaa la valeur true.
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. Par exemple, supposons que les conditions a et b sont true et que la condition c a la valeur false. 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