QueryFilter (heredado) - Amazon DynamoDB

QueryFilter (heredado)

nota

Le recomendamos que utilice los nuevos parámetros de expresión en lugar de estos parámetros heredados siempre que sea posible. Para obtener más información, consulte Uso de expresiones en DynamoDB. Para obtener información específica sobre el nuevo parámetro que reemplaza a este, Use FilterExpression en su lugar..

En una operación Query, el parámetro condicional heredado QueryFilter es una condición que evalúa los resultados de la consulta después de que se hayan leído los elementos y devuelve únicamente los valores deseados.

Este parámetro no es compatible con atributos de tipo List o Map.

nota

QueryFilter se aplica después de haber leído los elementos; el proceso de filtrado no consume ninguna unidad de capacidad de lectura adicional.

Si proporciona más de una condición en el mapa QueryFilter, de forma predeterminada todas las condiciones deben evaluarse en true (verdadero). Es decir, las condiciones se combinan con el operador AND. (Si lo desea, puede usar el parámetro ConditionalOperator (heredado) para definir las condiciones en OR (o). En tal caso, deberá evaluarse en true (verdadero) al menos una de las condiciones, en lugar de todas ellas).

Tenga en cuenta que QueryFilter no admite atributos de clave. No puede definir una condición de filtro en una clave de partición ni de ordenación.

Cada entrada QueryFilter consta de un nombre de atributo que se va a comparar, junto con lo siguiente:

  • AttributeValueList: uno o más valores que se evaluarán respecto al atributo suministrado. El número de valores de la lista depende del operador especificado en ComparisonOperator.

    Para el tipo Number, las comparaciones de los valores son numéricas.

    Las comparaciones de valores String (cadena) de tipo mayor que, igual que o menor que se basan en la codificación UTF-8 binaria. Por ejemplo, a es mayor que A y a es mayor que B.

    Al comparar valores de tipo Binary, DynamoDB trata cada byte de los datos binarios como sin signo.

    Para obtener más información sobre cómo especificar los tipos de datos en JSON, consulte API de bajo nivel de DynamoDB.

  • ComparisonOperator: comparador que permite evaluar los atributos. Por ejemplo: igual que, mayor que y menor que.

    Están disponibles los siguientes operadores de comparación:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

Use FilterExpression en su lugar; ejemplo

Supongamos que quiere consultar la tabla Music y aplicar una condición a la coincidencia de elementos. Podría usar una solicitud Query con un parámetro QueryFilter como en este ejemplo de la AWS CLI:

aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist": { "ComparisonOperator": "EQ", "AttributeValueList": [ {"S": "No One You Know"} ] } }' \ --query-filter '{ "Price": { "ComparisonOperator": "GT", "AttributeValueList": [ {"N": "1.00"} ] } }'

Puede utilizar FilterExpression en su lugar:

aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a' \ --filter-expression 'Price > :p' \ --expression-attribute-values '{ ":p": {"N":"1.00"}, ":a": {"S":"No One You Know"} }'