Expresiones, operadores y funciones de condición y filtro en DynamoDB
Para manipular datos en una tabla de DynamoDB, se usan las operaciones PutItem, UpdateItem y DeleteItem. Para estas operaciones de manipulación de datos, puede especificar una expresión de condición con el fin de determinar qué elementos deben modificarse. Si la expresión de condición se evalúa en true, entonces la operación se realiza correctamente. De lo contrario, la operación no se llevará a cabo correctamente.
En esta sección se describen las funciones y las palabras clave integradas para escribir expresiones de filtro y condición en Amazon DynamoDB. Para obtener más información sobre las funciones y la programación con DynamoDB, consulte Programación con DynamoDB y los SDK de AWS y la Referencia de la API de DynamoDB.
Temas
Sintaxis de las expresiones de filtro y condición
En el siguiente resumen de sintaxis, el componente operand puede ser uno de los siguientes:
-
Un nombre de atributo de nivel superior, como por ejemplo
Id,Title,DescriptionoProductCategory -
Una ruta de documento que hace referencia a un atributo anidado
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)
Realización de comparaciones
Utilice estos comparadores para comparar un operando con un solo valor:
-
: es true sia=baes igual queb. -
: es true sia<>baes distinto deb. -
: es true sia<baes menor queb. -
: es true sia<=baes menor o igual queb. -
: es true sia>baes mayor queb. -
: es true sia>=baes mayor o igual queb.
Use las palabras clave BETWEEN e IN para comparar un operando con un rango o una lista de valores:
-
: es true siaBETWEENbANDcaes mayor o igual queby menor o igual quec. -
: es true siaIN (b,c,d)aes igual a cualquiera de los valores de la lista; por ejemplo, en este caso, ab,cod. La lista puede contener hasta 100 valores separadas por comas.
Funciones
Utilice las siguientes funciones para determinar si un atributo existe en un elemento o evaluar el valor de un atributo. Los nombres de estas funciones distinguen entre mayúsculas y minúsculas. En el caso de los atributos anidados, debe proporcionar su ruta de documento completa.
| Función | Descripción |
|---|---|
|
|
Es true si el elemento contiene el atributo especificado por Ejemplo: Comprobación de si un elemento de la tabla
|
|
|
Es true si el atributo especificado en Ejemplo: Comprobación de si un elemento tiene el atributo
|
|
|
Es true si el atributo de la ruta especificada es de un tipo de datos determinado. El parámetro
Debe utilizar un valor de atributo de expresión para el parámetro Ejemplo: Comprobación de si el atributo
Debe utilizar un valor de atributo de expresión para el parámetro |
|
|
Es true si el atributo especificado por Ejemplo: Comprobación de si los primeros caracteres de la URL de la imagen de vista frontal son
El valor de atributo de expresión |
|
|
Es true si el atributo especificado por
Si el atributo especificado por La ruta y el operando deben ser distintos. Es decir, Ejemplo: Comprobación de si el atributo
El valor de atributo de expresión Ejemplo: Comprobación de si el producto está disponible en color rojo.
El valor de atributo de expresión |
|
|
Devuelve un número que representa el tamaño de un atributo. A continuación se muestran los tipos de datos válidos para usarlos con Si el atributo es de tipo Ejemplo: Comprobación de si la cadena
Si el atributo es de tipo Ejemplo: supongamos que el elemento
Si el tipo de datos del atributo es Ejemplo: Comprobación de si el producto está disponible en más de un color. El valor de atributo de expresión
Si el atributo es de tipo Ejemplo: Comprobación de si el número de opiniones
|
Evaluaciones lógicas
Utilice las palabras clave AND, OR y NOT para llevar a cabo evaluaciones lógicas. En la lista siguiente, a y b representan las condiciones que se van a evaluar.
-
: es true siaANDbaybson true. -
: es true siaORbaob(o ambas) son true. -
NOT: es true siaaes false. False siaes true.
A continuación se muestra un ejemplo de código de AND en una operación.
dynamodb-local (*)> select * from exprtest where a > 3 and a <
5;
Paréntesis
Los paréntesis se utilizan para cambiar la preferencia de una evaluación lógica. Por ejemplo, supongamos que las condiciones a y b son true y que la condición c es false. La siguiente expresión se evalúa en true:
-
aORbANDc
Sin embargo, si se incluye una condición entre paréntesis, esta se evalúa antes. Por ejemplo, lo siguiente se evalúa en false:
-
(aORb) ANDc
nota
En una expresión se pueden utilizar paréntesis anidados. En este caso, se evalúan primero los más internos.
A continuación se muestra un ejemplo de código con paréntesis en una evaluación lógica.
dynamodb-local (*)> select * from exprtest where attribute_type(b, string) or
( a = 5 and c = “coffee”);
Precedencia en las condiciones
DynamoDB evalúa las condiciones de izquierda a derecha aplicando las siguientes normas de prioridad:
-
= <> < <= > >= -
IN -
BETWEEN -
attribute_exists attribute_not_exists begins_with contains -
Paréntesis
-
NOT -
AND -
OR