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 exemplo: ProductCatalog
Os exemplos desta página usam o item de amostra a seguir na tabela ProductCatalog
. (Esta tabela é descrita na seção Exemplos de tabelas e dados para uso no DynamoDB.)
{
"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
eNull
. -
Um atributo (
Color
) é umString Set
. -
Os atributos a seguir são tipos de dados de documento:
-
Uma lista de
RelatedItems
. Cada elemento é umId
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 Referir-se a atributos de item ao usar expressões no DynamoDB.)
-
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 primeiro caractere deve ser
a-z
ouA-Z
e ou0-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 (aliases) de atributo de expressão no DynamoDB.