Filtros - AWS AppSync

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 la expression.

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 la expression.

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) } }