Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Expressões de condição e filtro, operadores e funções no DynamoDB

Modo de foco
Expressões de condição e filtro, operadores e funções no DynamoDB - Amazon 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.

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 ou ProductCategory

  • Um caminho de documento que faz referência a um atributo aninhado

condition-expression ::= operand comparator operand | operand BETWEEN operand AND operand | operand IN ( operand (',' operand (, ...) )) | function | condition AND condition | condition OR condition | NOT condition | ( 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:

  • a = b: verdadeiro se a for igual a b.

  • a <> b: verdadeiro se a não for igual a b.

  • a < b: verdadeiro se a for menor que b.

  • a <= b: verdadeiro se a for menor que ou igual a b.

  • a > b: verdadeiro se a for maior que b.

  • a >= b: verdadeiro se a for maior ou igual a b.

Use as palavras-chave BETWEEN e IN para comparar um operando com um intervalo de valores ou com uma lista enumerada de valores:

  • a BETWEEN b AND c: verdadeiro se a for maior ou igual a b e menor ou igual a c.

  • a IN (b, c, d) : verdadeiro se a for igual a qualquer um dos valores na lista; por exemplo, b, c ou d. 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

attribute_exists (path)

True se o item contiver o atributo especificado por path.

Exemplo: verificar se um item na tabela Product tem uma imagem de vista lateral.

  • attribute_exists (#Pictures.#SideView)

attribute_not_exists (path)

True se o atributo especificado por path não existir no item.

Exemplo: verificar se um item tem um atributo Manufacturer.

  • attribute_not_exists (Manufacturer)

attribute_type (path, type)

True se o atributo no caminho especificado for de um tipo de dados específico. O parâmetro type deve ser um dos seguintes:

  • S – String

  • SS: String Set

  • N – Number

  • NS: Number Set

  • B – Binary

  • BS Binary Set

  • BOOL – Boolean

  • NULL – Null

  • L – List

  • M – Map

Você deve usar um valor de atributo de expressão para o parâmetro type.

Exemplo: verificar se o atributo QuantityOnHand é do tipo Lista. Neste exemplo, :v_sub é um espaço reservado para a string L.

  • attribute_type (ProductReviews.FiveStar, :v_sub)

Você deve usar um valor de atributo de expressão para o parâmetro type.

begins_with (path, substr)

Verdadeiro se o atributo especificado por path começar com uma substring específica.

Exemplo: verificar se os primeiros caracteres do URL da imagem de vista frontal são http://.

  • begins_with (Pictures.FrontView, :v_sub)

O valor do atributo de expressão :v_sub é um espaço reservado para http://.

contains (path, operand)

Verdadeiro se o atributo especificado por path for um dos seguintes:

  • Uma String que contém uma substring específica.

  • Um Set que contém um elemento específico dentro dele.

  • Um List que contém um elemento específico dentro da lista.

Se o atributo especificado por path for String, o operand deve ser String. Se o atributo especificado por path for um Set, o operand deverá ser o tipo de elemento do conjunto.

O caminho e o operando devem ser distintos. Isto é, contains (a, a) retorna um erro.

Exemplo: verificar se o atributo Brand contém a substring Company.

  • contains (Brand, :v_sub)

O valor do atributo de expressão :v_sub é um espaço reservado para Company.

Exemplo: verificar se o produto está disponível em vermelho.

  • contains (Color, :v_sub)

O valor do atributo de expressão :v_sub é um espaço reservado para Red.

size (path)

Retorna um número que representa o tamanho de um atributo. Veja a seguir os tipos de dados válidos para uso com size.

Se o atributo for do tipo String, size retornará o comprimento da string.

Exemplo: verificar se a string Brand é menor ou igual a 20 caracteres. O valor do atributo de expressão :v_sub é um espaço reservado para 20.

  • size (Brand) <= :v_sub

Se o atributo for do tipo Binary, size retornará o número de bytes no valor do atributo.

Exemplo: suponha que o item de ProductCatalog tenha um atributo binário chamado VideoClip, que contém um curto vídeo sobre o produto em uso. A seguinte expressão verifica se VideoClip excede 64.000 bytes. O valor do atributo de expressão :v_sub é um espaço reservado para 64000.

  • size(VideoClip) > :v_sub

Se o atributo for de um tipo de dados de Set, size retornará o número de elementos no conjunto.

Exemplo: verificar se o produto está disponível em mais de uma cor. O valor do atributo de expressão :v_sub é um espaço reservado para 1.

  • size (Color) < :v_sub

Se o atributo for do tipo List ou Map, size retornará o número de elementos filho.

Exemplo: verificar se o número de revisões OneStar excedeu um determinado limite. O valor do atributo de expressão :v_sub é um espaço reservado para 3.

  • size(ProductReviews.OneStar) > :v_sub

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.

  • a AND b: verdadeiro se a e b forem ambos verdadeiros.

  • a OR b: verdadeiro se a ou b ou ambos forem verdadeiros.

  • NOT a: verdadeiro se a for falso. Falso se a 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 OR b AND c

No entanto, se você colocar uma condição entre parênteses, ela será avaliada primeiro. Por exemplo, o seguinte é avaliado como falso:

  • (a OR b) AND c

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

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.