Expressions de filtre pour l'opération Query - Amazon DynamoDB

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 filtre pour l'opération Query

Si vous avez besoin d'affiner davantage les résultats de l'opération Query, vous pouvez fournir une expression de filtre facultative. Une expression de filtre détermine les éléments dans les résultats de Query qui doivent vous être renvoyés. Tous les autres résultats sont ignorés.

Une expression de filtre est appliquée après la fin de l'opération Query, mais avant que les résultats soient renvoyés. Par conséquent, une opération Query utilise la même capacité de lecture, qu'une expression de filtre soit présente ou non.

Une opération Query peut extraire au maximum 1 Mo de données. Cette limite s'applique avant que l'expression de filtre soit évaluée.

Une expression de filtre ne peut pas contenir d'attributs de clé de partition ou de clé de tri. Vous devez préciser ces attributs dans l'expression de condition de clé, pas dans l'expression de filtre.

La syntaxe d'un expression de filtre est similaire à celle d'une expression de condition de clé. Les expressions de filtre peuvent utiliser les mêmes comparateurs, fonctions et opérateurs logiques qu'une expression de condition de clé. En outre, les expressions de filtre peuvent utiliser l'opérateur non égal (<>), l'opérateur OR, l'opérateur CONTAINS, l'opérateur IN, l'opérateur BEGINS_WITH, l'opérateur BETWEEN, l'opérateur EXISTS et l'opérateur SIZE. Pour plus d’informations, consultez Expressions de condition clé pour l'opération Query et Syntaxe des expressions de filtre et de condition.

Exemple

L' AWS CLI exemple suivant interroge la Thread table pour une ForumName (clé de partition) et une Subject (clé de tri) particulières. Parmi les éléments trouvés, seules les unités d’exécution de discussion les plus populaires sont renvoyés, c'est-à-dire les threads ayant plus qu'un certain nombre de Views.

aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :fn and Subject = :sub" \ --filter-expression "#v >= :num" \ --expression-attribute-names '{"#v": "Views"}' \ --expression-attribute-values file://values.json

Les arguments de la fonction --expression-attribute-values sont stockés dans le fichier values.json.

{ ":fn":{"S":"Amazon DynamoDB"}, ":sub":{"S":"DynamoDB Thread 1"}, ":num":{"N":"3"} }

Notez que Views étant un mot réservé dans DynamoDB (consultez Mots réservés dans DynamoDB), cet exemple utilise #v comme espace réservé. Pour de plus amples informations, veuillez consulter Noms d'attributs d'expression (alias) dans DynamoDB.

Note

Une expression de filtre supprime des éléments du jeu de résultats de Query. Dans la mesure du possible, évitez d'utiliser Query lorsque vous pensez extraire un grand nombre d'éléments mais que vous devrez en supprimer une grande partie.