Especificar atributos de item ao usar expressões - Amazon DynamoDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Especificar atributos de item ao usar expressões

Esta seção descreve como consultar atributos de item em uma expressão no Amazon DynamoDB. Você pode trabalhar com qualquer atributo, mesmo se ele estiver profundamente aninhado dentro de várias listas e mapas.

Um item de amostra: ProductCatalog

Veja a seguir uma representação de um item na tabela ProductCatalog. (Esta tabela é descrita na seção Exemplos de tabelas e dados.)

{ "Id": 123, "Title": "Bicycle 123", "Description": "123 description", "BicycleType": "Hybrid", "Brand": "Brand-Company C", "Price": 500, "Color": ["Red", "Black"], "ProductCategory": "Bicycle", "InStock": true, "QuantityOnHand": null, "RelatedItems": [ 341, 472, 649 ], "Pictures": { "FrontView": "http://example.com/products/123_front.jpg", "RearView": "http://example.com/products/123_rear.jpg", "SideView": "http://example.com/products/123_left_side.jpg" }, "ProductReviews": { "FiveStar": [ "Excellent! Can't recommend it highly enough! Buy it!", "Do yourself a favor and buy this." ], "OneStar": [ "Terrible product! Do not buy this." ] }, "Comment": "This product sells out quickly during the summer", "Safety.Warning": "Always wear a helmet" }

Observe o seguinte:

  • O valor da chave de partição (Id) é 123. Não há chave de classificação.

  • A maioria dos atributos têm tipos de dados escalares, como String, Number, Boolean e Null.

  • Um atributo (Color) é um String Set.

  • Os atributos a seguir são tipos de dados de documento:

    • Uma lista de RelatedItems. Cada elemento é um Id de um produto relacionado.

    • Um mapa de Pictures. Cada elemento é uma breve descrição de uma imagem, juntamente com um URL para o arquivo de imagem correspondente.

    • Um mapa de ProductReviews. Cada elemento representa uma classificação e uma lista de avaliações correspondentes a essa classificação. Inicialmente, esse mapa é preenchido com avaliações de cinco estrelas e de uma estrela.

Atributos de nível superior

Um atributo será considerado como de nível superior se ele não estiver incorporado a outro atributo. Para o item do ProductCatalog, os atributos de nível superior são os seguintes:

  • Id

  • Title

  • Description

  • BicycleType

  • Brand

  • Price

  • Color

  • ProductCategory

  • InStock

  • QuantityOnHand

  • RelatedItems

  • Pictures

  • ProductReviews

  • Comment

  • Safety.Warning

Todos esses atributos de nível superior são escalares, exceto Color (lista), RelatedItems (lista), Pictures (mapa) e ProductReviews (mapa).

Atributos aninhados

Um atributo é considerado aninhado se ele estiver incorporado a outro atributo. Para acessar um atributo aninhado, utiliza-se operadores de cancelamento de referência:

  • [n]: para elementos de lista

  • . (ponto): para elementos de mapa

Acesso a elementos de lista

O operador de desreferência de um elemento de lista é [N], onde n é o número do elemento. Os elementos de lista são baseados em zero, portanto, [0] representa o primeiro elemento na lista, [1] representa o segundo, e assim por diante. Veja alguns exemplos:

  • MyList[0]

  • AnotherList[12]

  • ThisList[5][11]

O próprio elemento ThisList[5] é uma lista aninhada. Portanto, ThisList[5][11] refere-se ao décimo segundo elemento na lista.

O número dentro de colchetes deve ser um inteiro não negativo. Portanto, as seguintes expressões são inválidas:

  • MyList[-1]

  • MyList[0.4]

Acessar elementos de mapas

O operador de cancelamento de referência de um elemento de mapa é . (um ponto). Use um ponto como um separador entre os elementos em um mapa:

  • MyMap.nestedField

  • MyMap.nestedField.deeplyNestedField

Caminhos de documentos

Em uma expressão, você usa um caminho de documento para informar ao DynamoDB onde encontrar um atributo. Para um atributo de nível superior, o caminho do documento é simplesmente o nome do atributo. Para um atributo aninhado, você pode construir o caminho do documento usando operadores de cancelamento de referência.

Veja a seguir alguns exemplos de caminhos de documentos. (Consulte o item mostrado em Especificar atributos de item ao usar expressões.)

  • Um atributo escalar de nível superior.

    Description

  • Um atributo de lista de nível superior. (Isso retorna a lista inteira, não apenas alguns dos elementos.)

    RelatedItems

  • O terceiro elemento na lista RelatedItems. (Lembre-se de que os elementos de lista são baseadas em zero.)

    RelatedItems[2]

  • A imagem da visão frontal do produto.

    Pictures.FrontView

  • Todas as críticas de cinco estrelas.

    ProductReviews.FiveStar

  • A primeira das críticas de cinco estrelas.

    ProductReviews.FiveStar[0]

nota

A profundidade máxima de um caminho de documento é 32. Portanto, o número de operadores de cancelamento de referência em um caminho não pode exceder esse limite.

É possível usar qualquer nome de atributo em um caminho de documento, desde ele que cumpra estes requisitos:

  • O nome do atributo deve começar com um sinal de libra (#)

  • O primeiro caractere deve ser a-z ou A-Z e ou 0-9

  • O segundo caractere (se presente) deve ser a-z, A-Z

nota

Se um nome de atributo não cumprir essas exigências, você deverá definir um nome de atributo de expressão como um espaço reservado.

Para ter mais informações, consulte Nomes de atributos de expressão no DynamoDB.