

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

**Nota**  
Consigliamo di utilizzare i nuovi parametri di espressione piuttosto che i parametri precedenti, se possibile. Per ulteriori informazioni, consulta [Utilizzo di espressioni in DynamoDB](Expressions.md). Per informazioni specifiche sul nuovo parametro che sostituisce questo, consulta [usa *FilterExpression*invece.](#FilterExpression2.instead). 

In una operazione `Scan`, il parametro condizionale legacy `ScanFilter` è una condizione che valuta i risultati della scansione e restituisce solo i valori desiderati.

**Nota**  
Questo parametro non supporta gli attributi di tipo List o Map.

Se si specifica più di una condizione nella mappa `ScanFilter`, allora, per impostazione predefinita, tutte le condizioni devono restituire true. In altre parole, le condizioni coesistono ANDed . È possibile utilizzare il parametro [ConditionalOperator (eredità)](LegacyConditionalParameters.ConditionalOperator.md) per applicare l'operatore OR alle condizioni. In questo caso, almeno una delle condizioni deve restituire true, se non tutte.

Ogni elemento `ScanFilter` è costituito da un nome di attributo da confrontare, insieme a quanto segue:
+  `AttributeValueList`: uno o più valori da valutare rispetto all'attributo fornito. Il numero di valori in List dipende dall'operatore specificato in `ComparisonOperator`.

  Per il tipo Number, i confronti dei valori sono numerici.

  I confronti di valori String per maggiore di, uguale o minore di sono basati sulla codifica binaria UTF-8. Ad esempio, `a` è maggiore di `A` e `a` è maggiore di `B`.

  Per il tipo Binary, quando confronta i valori binari DynamoDB tratta ogni byte dei dati binari come non firmato.

  Per informazioni su come specificare i tipi di dati in JSON, consulta [API DynamoDB di basso livello](Programming.LowLevelAPI.md).
+  `ComparisonOperator`: un comparatore per valutare gli attributi. Ad esempio, uguale a, maggiore di e minore di.

  Sono disponibili i seguenti operatori di confronto:

   `EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN` 

## Usa *FilterExpression*invece — Esempio
<a name="FilterExpression2.instead"></a>

Supponiamo di voler eseguire la scansione della tabella *Music* e di applicare una condizione agli elementi corrispondenti. È possibile utilizzare una richiesta `Scan` con un parametro `ScanFilter`, come in questo esempio AWS CLI :

```
aws dynamodb scan \
    --table-name Music \
    --scan-filter '{
        "Genre":{
            "AttributeValueList":[ {"S":"Rock"} ],
            "ComparisonOperator": "EQ"
        }
    }'
```

Puoi invece utilizzare `FilterExpression`:

```
aws dynamodb scan \
    --table-name Music \
    --filter-expression 'Genre = :g' \
    --expression-attribute-values '{
        ":g": {"S":"Rock"} 
    }'
```