Filtros
Al consultar objetos de DynamoDB mediante las operaciones Query
y Scan
, tiene la posibilidad de especificar un filter
para evaluar los resultados y devolver solo los valores deseados.
La sección de mapeo de filtros de un documento de mapeo Query
o Scan
tiene la siguiente estructura:
"filter" : { "expression" : "filter expression" "expressionNames" : { "#name" : "name", }, "expressionValues" : { ":value" : ... typed value }, }
Los campos se definen de la siguiente manera:
-
expression
-
La expresión de la consulta. Para obtener más información sobre cómo escribir expresiones de filtro, consulte la documentación de DynamoDB QueryFilter y DynamoDB ScanFilter. Este campo debe especificarse.
-
expressionNames
-
Las sustituciones de los marcadores de posición de nombre de atributo de expresión, en forma de pares de clave-valor. La clave corresponde a un marcador de posición de nombre utilizado en la
expression
. El valor debe ser una cadena que corresponda al nombre del atributo del elemento en DynamoDB. Este campo es opcional y solo debe rellenarse con las sustituciones de marcadores de posición de nombre de atributo de expresión que se usen en laexpression
. -
expressionValues
-
Las sustituciones de los marcadores de posición de valor de atributo de expresión, en forma de pares de clave-valor. La clave corresponde a un marcador de posición de valor usado en la
expression
y el valor tiene que ser un valor con tipo. Para obtener más información sobre cómo especificar un “valor con tipo”, consulte Sistema de tipos (mapeo de solicitud). Este valor debe especificarse. Este campo es opcional y solo debe rellenarse con las sustituciones de los marcadores de posición de valor de atributo de expresión que se usen en laexpression
.
Ejemplo
En el siguiente ejemplo, se muestra una sección de filtro para una plantilla de mapeo en la que las entradas obtenidas de DynamoDB solo se devuelven si el título comienza con el argumento title
.
"filter" : { "expression" : "begins_with(#title, :title)", "expressionNames" : { "#title" : "title" }, "expressionValues" : { ":title" : $util.dynamodb.toDynamoDBJson($context.arguments.title) } }