

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à.

# Espressioni di filtro per l’operazione Query in DynamoDB
<a name="Query.FilterExpression"></a>

Se devi perfezionare ulteriormente i risultati di `Query`, opzionalmente puoi fornire un'espressione filtro. Un'*espressione di filtro* determina quali item all'interno dei risultati di `Query` devono essere restituiti. Tutti gli altri risultati vengono scartati.

Un'espressione di filtro viene applicata al termine di un'operazione `Query`, ma prima che i risultati vengano restituiti. Pertanto, un'operazione `Query` consuma la stessa quantità di capacità in lettura, a prescindere dal fatto che sia presente un'espressione di filtro.

Un'operazione `Query` può recuperare un massimo di 1 MB di dati. Questo limite si applica prima che l'espressione di filtro venga valutata.

Un'espressione di filtro non può contenere attributi di chiave di partizione o chiave di ordinamento. Devi specificare quegli attributi nell'espressione della condizione di chiave e non nell'espressione di filtro.

La sintassi per un'espressione di filtro è simile a quella di un'espressione di condizione chiave. Le espressioni di filtro possono utilizzare gli stessi comparatori, funzioni e operatori logici come espressione di condizione chiave. Inoltre, le espressioni di filtro possono utilizzare l'operatore non uguale (`<>`), l’operatore `OR`, l’operatore `CONTAINS`, l’operatore `IN`, l’operatore `BEGINS_WITH`, l’operatore `BETWEEN`, l’operatore `EXISTS` e l’operatore `SIZE`. Per ulteriori informazioni, consultare [Espressioni di condizione della chiave per l’operazione Query in DynamoDB](Query.KeyConditionExpressions.md) e [Sintassi per le espressioni di filtro e condizioni](Expressions.OperatorsAndFunctions.md#Expressions.OperatorsAndFunctions.Syntax).

**Example**  
L' AWS CLI esempio seguente interroga la `Thread` tabella per un particolare `ForumName` (chiave di partizione) e `Subject` (chiave di ordinamento). Tra gli elementi trovati, vengono restituiti solo i thread di discussione più popolari, in altre parole solo i thread con più di un certo numero di `Views`.  

```
aws dynamodb query \
    --table-name Thread \
    --key-condition-expression "ForumName = :fn and Subject begins_with :sub" \
    --filter-expression "#v >= :num" \
    --expression-attribute-names '{"#v": "Views"}' \
    --expression-attribute-values file://values.json
```
Gli argomenti per `--expression-attribute-values` sono memorizzati nel file `values.json`:  

```
{
    ":fn":{"S":"Amazon DynamoDB"},
    ":sub":{"S":"DynamoDB Thread 1"},
    ":num":{"N":"3"}
}
```
Tenere presente che `Views` è una parola riservata in DynamoDB (vedere [Parole riservate in DynamoDB](ReservedWords.md)), quindi in questo esempio si usa `#v` come segnaposto. Per ulteriori informazioni, consulta [Nomi di attributi di espressione (alias) in DynamoDB](Expressions.ExpressionAttributeNames.md).

**Nota**  
Un'espressione filtro rimuove gli elementi dal set di risultati della `Query`. Se possibile, evita di utilizzare `Query` dove ti aspetti di recuperare un gran numero di item, ma sai che devi anche scartare la maggior parte di questi item.