QueryFilter (eredità) - 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à.

QueryFilter (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 FilterExpressioninvece..

In un'operazione Query, parametro condizionale legacy QueryFilter è una condizione che valuta i risultati delle query dopo la lettura degli elementi e restituisce solo i valori desiderati.

Questo parametro non supporta gli attributi di tipo List o Map.

Nota

QueryFilter viene applicato dopo che gli elementi sono già stati letti; il processo di filtraggio non consuma alcuna unità di capacità di lettura aggiuntiva.

Se si fornisce più di una condizione nella mappa QueryFilter, allora, per impostazione predefinita, tutte le condizioni devono restituire true. In altre parole, le condizioni vengono combinate utilizzando l'ANDoperatore. È possibile utilizzare il parametro ConditionalOperator (eredità) per applicare l'operatore OR alle condizioni. In questo caso, almeno una delle condizioni deve restituire true, se non tutte.

Tenere presente che QueryFilter non consente gli attributi chiave. Non è possibile definire una condizione di filtro su una chiave di partizione o una chiave di ordinamento.

Ogni elemento QueryFilter è 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 in List dipende dall'operatore specificato in ComparisonOperator.

    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 sulla codifica binaria UTF -8. Ad esempio, a è maggiore di A e a è maggiore di B.

    Per il tipo Binary, quando confronta i valori binari DynamoDB tratta ogni byte dei dati binari come non firmato.

    Per informazioni sulla specificazione dei tipi di dati in, vedere. JSON DynamoDB di basso livello API

  • ComparisonOperator: un comparatore per valutare gli attributi. Ad esempio, uguale a, maggiore di e minore di.

    Sono disponibili i seguenti operatori di confronto:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

Usa FilterExpressioninvece: Esempio

Si supponga di voler eseguire una query sulla tabella Music e di applicare una condizione agli elementi corrispondenti. È possibile utilizzare una richiesta Query con un parametro QueryFilter, come in questo esempio AWS CLI :

aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist": { "ComparisonOperator": "EQ", "AttributeValueList": [ {"S": "No One You Know"} ] } }' \ --query-filter '{ "Price": { "ComparisonOperator": "GT", "AttributeValueList": [ {"N": "1.00"} ] } }'

Puoi invece utilizzare FilterExpression:

aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a' \ --filter-expression 'Price > :p' \ --expression-attribute-values '{ ":p": {"N":"1.00"}, ":a": {"S":"No One You Know"} }'