Espressioni di filtro per l'operazione Query in DynamoDB - Amazon DynamoDB

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

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, consulta Espressioni delle condizioni chiave per l'operazione Query in DynamoDB e Sintassi per le espressioni di filtro e condizioni.

Esempio

L' AWS CLI esempio seguente interroga la Thread tabella per una 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 = :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), quindi in questo esempio si usa #v come segnaposto. Per ulteriori informazioni, consulta Nomi degli attributi di espressione (alias) in DynamoDB.

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.