ScanFilter (heredado) - Amazon DynamoDB

ScanFilter (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 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 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 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"} }'