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 enComparisonOperator
.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 queA
ya
es mayor queB
.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"} }'