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à.
KeyConditions (eredità)
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. Per informazioni specifiche sul nuovo parametro che sostituisce questo, consulta usa KeyConditionExpressioninvece..
Il parametro condizionale legacy KeyConditions
contiene i criteri di selezione per un'operazione Query
. Per una query su una tabella, è possibile disporre di condizioni solo sugli attributi della chiave primaria della tabella. È necessario specificare il nome e il valore della chiave di partizione come condizione EQ
. Facoltativamente, è possibile fornire una seconda condizione che fa riferimento alla chiave di ordinamento.
Nota
Se non si specifica una condizione della chiave di ordinamento, verranno recuperati tutti gli elementi che corrispondono alla chiave di partizione. Se è presente FilterExpression
o QueryFilter
, verrà applicato dopo che gli elementi sono stati recuperati.
Per una query su un indice, è possibile disporre di condizioni solo sugli attributi della chiave di indice. È necessario specificare il nome e il valore della chiave di partizione dell'indice come condizione EQ
. Facoltativamente, è possibile fornire una seconda condizione che fa riferimento alla chiave di ordinamento dell'indice.
Ogni elemento KeyConditions
è 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 nell'elenco dipende dalComparisonOperator
utilizzato.Per il tipo Number, i confronti dei valori sono numerici.
I confronti tra valori di stringa con valori maggiori di, uguali o minori di si basano su Unicode con codifica binaria -8. UTF Ad esempio,
a
è maggiore diA
ea
è maggiore diB
.Per il tipo Binary, quando confronta i valori binari DynamoDB tratta ogni byte dei dati binari come non firmato.
-
ComparisonOperator
: un comparatore per valutare gli attributi. Ad esempio, uguale a, maggiore di e minore di.Per
KeyConditions
, sono supportati solo i seguenti operatori di confronto:EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
Di seguito sono riportate le descrizioni di questi operatori di confronto.
-
EQ
: uguale.AttributeValueList
può contenere solo unAttributeValue
di tipo String, Number o Binary (non un tipo Set). Se un elemento contiene un elementoAttributeValue
di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio,{"S":"6"}
non è uguale a{"N":"6"}
. Inoltre,{"N":"6"}
non è uguale a{"NS":["6", "2", "1"]}
. -
LE
: minore o uguale a.AttributeValueList
può contenere solo un elementoAttributeValue
di tipo String, Number o Binary (non un tipo Set). Se un elemento contiene un elementoAttributeValue
di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio,{"S":"6"}
non è uguale a{"N":"6"}
. Inoltre,{"N":"6"}
non si confronta con{"NS":["6", "2", "1"]}
. -
LT
: minore di.AttributeValueList
può contenere solo unAttributeValue
di tipo String, Number o Binary (non un tipo Set). Se un elemento contiene un elementoAttributeValue
di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio,{"S":"6"}
non è uguale a{"N":"6"}
. Inoltre,{"N":"6"}
non si confronta con{"NS":["6", "2", "1"]}
. -
GE
: maggiore o uguale a.AttributeValueList
può contenere solo un elementoAttributeValue
di tipo String, Number o Binary (non un tipo Set). Se un elemento contiene un elementoAttributeValue
di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio,{"S":"6"}
non è uguale a{"N":"6"}
. Inoltre,{"N":"6"}
non si confronta con{"NS":["6", "2", "1"]}
. -
GT
: maggiore di.AttributeValueList
può contenere solo un elementoAttributeValue
di tipo String, Number o Binary (non un tipo Set). Se un elemento contiene un elementoAttributeValue
di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio,{"S":"6"}
non è uguale a{"N":"6"}
. Inoltre,{"N":"6"}
non si confronta con{"NS":["6", "2", "1"]}
. -
BEGINS_WITH
: controlla la presenza di un prefisso.AttributeValueList
può contenere solo unAttributeValue
di tipo String o Binary (non un tipo Number o Set). L'attributo di destinazione del confronto deve essere String o Binary (non un tipo Number o Set). -
BETWEEN
: maggiore di o uguale a primo valore e minore di o uguale a secondo valore.AttributeValueList
deve contenere due elementiAttributeValue
dello stesso tipo, String, Number o Binary (non un tipo Set). Un attributo di destinazione corrisponde se il valore di destinazione è maggiore o uguale al primo elemento e minore o uguale al secondo elemento. Se un elemento contiene un elementoAttributeValue
di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio,{"S":"6"}
non si confronta con{"N":"6"}
. Inoltre,{"N":"6"}
non si confronta con{"NS":["6", "2", "1"]}
.
-
Usa invece — Esempio KeyConditionExpression
Si supponga di voler recuperare diversi elementi con la stessa chiave di partizione dalla tabella Music. Puoi usare una Query
richiesta con un KeyConditions
parametro, come in questo AWS CLI esempio:
aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist":{ "ComparisonOperator":"EQ", "AttributeValueList": [ {"S": "No One You Know"} ] }, "SongTitle":{ "ComparisonOperator":"BETWEEN", "AttributeValueList": [ {"S": "A"}, {"S": "M"} ] } }'
Puoi invece utilizzare KeyConditionExpression
:
aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a AND SongTitle BETWEEN :t1 AND :t2' \ --expression-attribute-values '{ ":a": {"S": "No One You Know"}, ":t1": {"S": "A"}, ":t2": {"S": "M"} }'