

# ScanFilter (herdado)
<a name="LegacyConditionalParameters.ScanFilter"></a>

**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](Expressions.md). Para obter informações específicas sobre o novo parâmetro que substitui este, [Use *FilterExpression* em vez disso.](#FilterExpression2.instead). 

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)](LegacyConditionalParameters.ConditionalOperator.md) 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](Programming.LowLevelAPI.md).
+  `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
<a name="FilterExpression2.instead"></a>

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