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
,Description
oProductCategory
-
Una ruta de documento que hace referencia a un atributo anidado
condition-expression ::=
operand
comparatoroperand
|operand
BETWEENoperand
ANDoperand
|operand
IN (operand
(','operand
(, ...) )) | function |condition
ANDcondition
|condition
ORcondition
| 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
=b
a
es igual queb
. -
: es true sia
<>b
a
es distinto deb
. -
: es true sia
<b
a
es menor queb
. -
: es true sia
<=b
a
es menor o igual queb
. -
: es true sia
>b
a
es mayor queb
. -
: es true sia
>=b
a
es 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 sia
BETWEENb
ANDc
a
es mayor o igual queb
y menor o igual quec
. -
: es true sia
IN (b
,c
,d
)a
es igual a cualquiera de los valores de la lista; por ejemplo, en este caso, ab
,c
od
. 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 sia
ANDb
a
yb
son true. -
: es true sia
ORb
a
ob
(o ambas) son true. -
NOT
: es true sia
a
es false. False sia
es 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:
-
a
ORb
ANDc
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:
-
(
a
ORb
) 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