ScanFilter (herdado) - Amazon DynamoDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

ScanFilter (herdado)

nota

Sugerimos que você use os novos parâmetros de expressão, em vez desses parâmetros herdados. Para obter 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 em ComparisonOperator.

    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 que A, e a é maior que B.

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