Expressões de condição e filtro, operadores e funções no DynamoDB
Para manipular dados em uma tabela do DynamoDB, use as operações PutItem, UpdateItem e DeleteItem. Para essas operações de manipulação de dados, é possível especificar uma expressão de condição para determinar quais itens devem ser modificados. Se a expressão de condição for avaliada como verdadeira, a operação terá êxito. Caso contrário, haverá falha na operação.
Esta seção aborda as funções e palavras-chave integradas para escrever expressões de filtro e expressões de condição no Amazon DynamoDB. Para obter informações mais detalhadas sobre funções e programação com o DynamoDB, consulte Programação com o DynamoDB e os AWS SDKs e a Referência da API do DynamoDB.
Tópicos
Sintaxe para expressões de filtro e de condição
No seguinte resumo de sintaxe, um operando pode ser o seguinte:
-
Um nome de atributo de nível superior, como
Id,Title,DescriptionouProductCategory -
Um caminho de documento que faz referência a um atributo aninhado
condition-expression ::=operandcomparatoroperand|operandBETWEENoperandANDoperand|operandIN (operand(','operand(, ...) )) | function |conditionANDcondition|conditionORcondition| NOTcondition| (condition) comparator ::= = | <> | < | <= | > | >= function ::= attribute_exists (path) | attribute_not_exists (path) | attribute_type (path,type) | begins_with (path,substr) | contains (path,operand) | size (path)
Fazer comparações
Use esses comparadores para comparar um operando com um único valor:
-
: verdadeiro sea=bafor igual ab. -
: verdadeiro sea<>banão for igual ab. -
: verdadeiro sea<bafor menor queb. -
: verdadeiro sea<=bafor menor que ou igual ab. -
: verdadeiro sea>bafor maior queb. -
: verdadeiro sea>=bafor maior ou igual ab.
Use as palavras-chave BETWEEN e IN para comparar um operando com um intervalo de valores ou com uma lista enumerada de valores:
-
: verdadeiro seaBETWEENbANDcafor maior ou igual abe menor ou igual ac. -
: verdadeiro seaIN (b,c,d)afor igual a qualquer um dos valores na lista; por exemplo,b,coud. A lista pode conter até 100 valores, separados por vírgulas.
Funções
Use as funções a seguir para determinar se um atributo existe em um item ou para avaliar o valor de um atributo. Esses nomes de funções diferenciam maiúsculas de minúsculas. Para um atributo aninhado, você deve fornecer o caminho completo do documento.
| Função | Descrição |
|---|---|
|
|
True se o item contiver o atributo especificado por Exemplo: verificar se um item na tabela
|
|
|
True se o atributo especificado por Exemplo: verificar se um item tem um atributo
|
|
|
True se o atributo no caminho especificado for de um tipo de dados específico. O parâmetro
Você deve usar um valor de atributo de expressão para o parâmetro Exemplo: verificar se o atributo
Você deve usar um valor de atributo de expressão para o parâmetro |
|
|
Verdadeiro se o atributo especificado por Exemplo: verificar se os primeiros caracteres do URL da imagem de vista frontal são
O valor do atributo de expressão |
|
|
Verdadeiro se o atributo especificado por
Se o atributo especificado por O caminho e o operando devem ser distintos. Isto é, Exemplo: verificar se o atributo
O valor do atributo de expressão Exemplo: verificar se o produto está disponível em vermelho.
O valor do atributo de expressão |
|
|
Retorna um número que representa o tamanho de um atributo. Veja a seguir os tipos de dados válidos para uso com Se o atributo for do tipo Exemplo: verificar se a string
Se o atributo for do tipo Exemplo: suponha que o item de
Se o atributo for de um tipo de dados de Exemplo: verificar se o produto está disponível em mais de uma cor. O valor do atributo de expressão
Se o atributo for do tipo Exemplo: verificar se o número de revisões
|
Avaliações lógicas
Use as palavras-chave AND, OR e NOT para executar avaliações lógicas. Na lista a seguir, a e b representam condições a serem avaliadas.
-
: verdadeiro seaANDbaebforem ambos verdadeiros. -
: verdadeiro seaORbaoubou ambos forem verdadeiros. -
NOT: verdadeiro seaafor falso. Falso seafor verdadeiro.
Veja a seguir um exemplo de código de AND em uma operação.
dynamodb-local (*)> select * from exprtest where a > 3 and a <
5;
Parênteses
Use parênteses para alterar a precedência de uma avaliação lógica. Por exemplo, suponha que as condições a e b sejam verdadeiras e que a condição c seja falsa. As expressões a seguir são avaliadas como verdadeiras:
-
aORbANDc
No entanto, se você colocar uma condição entre parênteses, ela será avaliada primeiro. Por exemplo, o seguinte é avaliado como falso:
-
(aORb) ANDc
nota
Você pode aninhar parênteses em uma expressão. Os componentes mais internos são avaliados primeiro.
Veja a seguir um exemplo de código com parênteses em uma avaliação lógica.
dynamodb-local (*)> select * from exprtest where attribute_type(b, string) or
( a = 5 and c = “coffee”);
Precedência em condições
O DynamoDB avalia as condições da esquerda para a direita usando as seguintes regras de precedência:
-
= <> < <= > >= -
IN -
BETWEEN -
attribute_exists attribute_not_exists begins_with contains -
Parênteses
-
NOT -
AND -
OR