QueryFilter (herdado) - Amazon DynamoDB

QueryFilter (herdado)

nota

Sugerimos que você use os novos parâmetros de expressão, em vez desses parâmetros herdados. Para ter mais informações, consulte Usar expressões no DynamoDB. Para obter informações específicas sobre o novo parâmetro que substitui este, Use FilterExpression em vez disso..

Em uma operação Query, parâmetro condicional herdado QueryFilter é uma condição que avalia os resultados da consulta depois que os itens são lidos e retorna apenas os valores desejados.

Este parâmetro não tem suporte a atributos do tipo List ou Map.

nota

Um QueryFilter é aplicado depois que os itens já foram lidos, o processo de filtragem não consome unidades de capacidade de leitura adicionais.

Se você fornecer mais de uma condição no mapa QueryFilter, por padrão, todas as condições deverão ser avaliadas como verdadeiras. Em outras palavras, as condições são combinadas usando o operador AND. (Em vez disso, você pode usar o parâmetro ConditionalOperator (herdado) processar as condições com o operador OR. Se fizer isso, pelo menos uma das condições deverá ser avaliada como true, em vez de todas elas.)

Observe que QueryFilter não permite atributos de chave. Você não pode definir uma condição de filtro em uma chave de partição ou uma chave de classificação.

Cada elemento QueryFilter consiste em um nome de atributo a ser comparado, junto com o seguinte:

  • AttributeValueList: um ou mais valores para avaliar em relação ao atributo fornecido. O número de valores na lista depende do operador especificado em ComparisonOperator.

    Para o tipo Number, as comparações de valor são numéricas.

    As comparações de valor String para "maior que", "igual a" ou "menor que" são baseadas em codificação UTF-8 binária. Por exemplo, a é maior que A, e a é maior que B.

    Para o tipo Binary, o DynamoDB trata cada byte de dados binários como não assinados ao comparar valores binários.

    Para obter mais informações sobre como especificar tipos de dados em JSON, consulte API de baixo nível do DynamoDB.

  • ComparisonOperator: um comparador para avaliar atributos. Por exemplo: é igual a, maior que e, menor que.

    Os seguintes operadores de comparação estão disponíveis:

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

Use FilterExpression em vez disso: exemplo

Suponha que você quisesse consultar a tabela Music e aplicar uma condição aos itens correspondentes. Você poderia usar uma solicitação Query com um parâmetro QueryFilter, como neste exemplo da 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"} ] } }'

Você pode usar FilterExpression em vez disso:

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"} }'