ScanFilter (herdado)
nota
Sugerimos que você use os novos parâmetros de expressão, em vez desses parâmetros herdados. Para ter mais informações, consulte Usar expressões no DynamoDB. Para obter informações específicas sobre o novo parâmetro que substitui este, Use FilterExpression em vez disso..
Em uma operação Scan
, o parâmetro condicional herdado ScanFilter
é uma condição que avalia os resultados da verificação e retorna apenas os valores desejados.
nota
Este parâmetro não tem suporte a atributos do tipo List ou Map.
Se você especificar mais de uma condição no mapa ScanFilter
, por padrão, todas as condições deverão ser avaliadas como verdadeiras. Em outras palavras, as condições são processadas com o operador AND. (Em vez disso, você pode usar o parâmetro ConditionalOperator (herdado) processar as condições com o operador OR. Se fizer isso, pelo menos uma das condições deverá ser avaliada como true, em vez de todas elas.)
Cada elemento ScanFilter
consiste em um nome de atributo a ser comparado, junto com o seguinte:
-
AttributeValueList
: um ou mais valores para avaliar em relação ao atributo fornecido. O número de valores na lista depende do operador especificado emComparisonOperator
.Para o tipo Number, as comparações de valor são numéricas.
As comparações de valor String para "maior que", "igual a" ou "menor que" são baseadas em codificação UTF-8 binária. Por exemplo,
a
é maior queA
, ea
é maior queB
.Para Binary, o DynamoDB trata cada byte de dados binários como não assinados ao comparar valores binários.
Para obter mais informações sobre como especificar tipos de dados em JSON, consulte API de baixo nível do DynamoDB.
-
ComparisonOperator
: um comparador para avaliar atributos. Por exemplo: é igual a, maior que e, menor que.Os seguintes operadores de comparação estão disponíveis:
EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN
Use FilterExpression em vez disso: exemplo
Suponha que você quisesse examinar a tabela Music e aplicar uma condição aos itens correspondentes. Você poderia usar uma solicitação Scan
com um parâmetro ScanFilter
, como neste exemplo da AWS CLI:
aws dynamodb scan \ --table-name Music \ --scan-filter '{ "Genre":{ "AttributeValueList":[ {"S":"Rock"} ], "ComparisonOperator": "EQ" } }'
Você pode usar FilterExpression
em vez disso:
aws dynamodb scan \ --table-name Music \ --filter-expression 'Genre = :g' \ --expression-attribute-values '{ ":g": {"S":"Rock"} }'