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.