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
,Description
ouProductCategory
-
Um caminho de documento que faz referência a um atributo aninhado
condition-expression ::=
operand
comparatoroperand
|operand
BETWEENoperand
ANDoperand
|operand
IN (operand
(','operand
(, ...) )) | function |condition
ANDcondition
|condition
ORcondition
| 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
=b
a
for igual ab
. -
: verdadeiro sea
<>b
a
não for igual ab
. -
: verdadeiro sea
<b
a
for menor queb
. -
: verdadeiro sea
<=b
a
for menor que ou igual ab
. -
: verdadeiro sea
>b
a
for maior queb
. -
: verdadeiro sea
>=b
a
for 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 sea
BETWEENb
ANDc
a
for maior ou igual ab
e menor ou igual ac
. -
: verdadeiro sea
IN (b
,c
,d
)a
for igual a qualquer um dos valores na lista; por exemplo,b
,c
oud
. 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 sea
ANDb
a
eb
forem ambos verdadeiros. -
: verdadeiro sea
ORb
a
oub
ou ambos forem verdadeiros. -
NOT
: verdadeiro sea
a
for falso. Falso sea
for 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:
-
a
ORb
ANDc
No entanto, se você colocar uma condição entre parênteses, ela será avaliada primeiro. Por exemplo, o seguinte é avaliado como falso:
-
(
a
ORb
) 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