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 Scan
, el parámetro condicional heredado ScanFilter
es una condición que evalúa los resultados del examen y devuelve únicamente los valores deseados.
nota
Este parámetro no es compatible con atributos de tipo List o Map.
Si especifica más de una condición en el mapa ScanFilter
, de forma predeterminada todas las condiciones deben evaluarse en true (verdadero). Es decir, se utiliza AND como operador para evaluar las condiciones. (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).
Cada entrada ScanFilter
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 examinar la tabla Music y aplicar una condición a la coincidencia de elementos. Podría usar una solicitud Scan
con un parámetro ScanFilter
como en este ejemplo de la AWS CLI:
aws dynamodb scan \ --table-name Music \ --scan-filter '{ "Genre":{ "AttributeValueList":[ {"S":"Rock"} ], "ComparisonOperator": "EQ" } }'
Puede utilizar FilterExpression
en su lugar:
aws dynamodb scan \ --table-name Music \ --filter-expression 'Genre = :g' \ --expression-attribute-values '{ ":g": {"S":"Rock"} }'