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 delle condizioni chiave per l'operazione Query in DynamoDB
Puoi utilizzare qualsiasi nome di attributo in un'espressione condizionale della chiave, a condizione che il primo carattere sia a-z
o A-Z
e che il resto dei caratteri (a iniziare dal secondo carattere, se presente) sia a-z
, A-Z
o 0-9
. Inoltre, il nome dell'attributo non deve essere una parola riservata di DynamoDB. Per l'elenco completo delle parole riservate, consulta Parole riservate in DynamoDB. Se un nome di attributo non soddisfa questi requisiti, devi definire un nome di attributo dell'espressione come un segnaposto. Per ulteriori informazioni, consulta Nomi degli attributi di espressione (alias) in DynamoDB.
Per gli elementi con un determinato valore di chiave di partizione, DynamoDB li memorizza tutti insieme, ordinati in base al valore della chiave di ordinamento. In un'operazione Query
, DynamoDB recupera gli elementi nell'ordine stabilito e quindi li elabora utilizzando KeyConditionExpression
e qualsiasi FilterExpression
eventualmente presente. Solo allora i risultati della Query
vengono restituiti al client.
Un'operazione Query
restituisce sempre un set di risultati. Se non vengono trovati item corrispondenti, il set di risultati è vuoto.
I risultati della Query
sono sempre ordinati per il valore della chiave di ordinamento. Se il tipo di dati della chiave di ordinamento è Number
, i risultati vengono restituiti in ordine numerico. Altrimenti, i risultati vengono restituiti nell'ordine di UTF -8 byte. Per impostazione predefinita, l'ordinamento è crescente. Per invertire l'ordine, imposta il parametro ScanIndexForward
su false
.
Una singola operazione Query
può recuperare un massimo di 1 MB di dati. Questo limite si applica prima che ai risultati venga applicato FilterExpression
o ProjectionExpression
. Se LastEvaluatedKey
è presente nella risposta ed è non null, devi eseguire la paginazione del set di risultati (consulta Impaginazione dei risultati delle query nelle tabelle in DynamoDB).
Esempi di espressioni di condizioni chiave
Per specificare i criteri di ricerca, è possibile utilizzare una espressione di condizione chiave, ovvero una stringa che determina gli elementi da leggere dalla tabella o dall'indice.
Devi specificare il nome e il valore della chiave di partizione come condizione di uguaglianza. Non puoi utilizzare un attributo non chiave in un'espressione di condizione chiave.
Facoltativamente puoi fornire una seconda condizione per la chiave di ordinamento (se presente). La condizione della chiave di ordinamento deve utilizzare uno dei seguenti operatori di confronto:
-
— vero se l'attributoa
=b
a
è uguale al valoreb
-
— vero sea
<b
a
è inferiore ab
-
— vero sea
<=b
a
è inferiore o uguale ab
-
— vero sea
>b
a
è maggiore dib
-
— vero sea
>=b
a
è maggiore o uguale ab
-
— vero sea
BETWEENb
ANDc
a
è maggiore o uguale ab
e minore o uguale ac
.
È supportata anche la seguente funzione:
-
begins_with (
: true se il valore dell'attributoa
,substr
)
inizia con una determinata sottostringa.a
I seguenti esempi AWS Command Line Interface (AWS CLI) illustrano l'uso di espressioni di condizioni chiave. Queste espressioni usano segnaposti (come ad esempio :name
e :sub
) anziché i valori effettivi. Per ulteriori informazioni, consulta Nomi degli attributi di espressione (alias) in DynamoDB e Utilizzo dei valori degli attributi di espressione in DynamoDB.
Esempio
Esegui la query sulla tabella Thread
per un particolare ForumName
(chiave di partizione). Tutti gli elementi con quel valore di ForumName
vengono letti dalla query, perché la chiave di ordinamento (Subject
) non è inclusa in KeyConditionExpression
.
aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :name" \ --expression-attribute-values '{":name":{"S":"Amazon DynamoDB"}}'
Esempio
Esegui la query sulla tabella Thread
per un particolare ForumName
(chiave di partizione); questa volta vengono restituiti solo gli elementi con uno specifico Subject
(chiave di ordinamento).
aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :name and Subject = :sub" \ --expression-attribute-values file://values.json
Gli argomenti per --expression-attribute-values
sono memorizzati nel file values.json
:
{ ":name":{"S":"Amazon DynamoDB"}, ":sub":{"S":"DynamoDB Thread 1"} }
Esempio
Esegui la query sulla tabella Reply
per un particolare Id
(chiave di partizione); vengono restituiti solo gli elementi il cui ReplyDateTime
(chiave di ordinamento) inizia con determinati caratteri.
aws dynamodb query \ --table-name Reply \ --key-condition-expression "Id = :id and begins_with(ReplyDateTime, :dt)" \ --expression-attribute-values file://values.json
Gli argomenti per --expression-attribute-values
sono memorizzati nel file values.json
:
{ ":id":{"S":"Amazon DynamoDB#DynamoDB Thread 1"}, ":dt":{"S":"2015-09"} }