Especificación de atributos de elementos mediante expresiones - Amazon DynamoDB

Especificación de atributos de elementos mediante expresiones

En esta sección se describe cómo consultar los atributos de los elementos en una expresión en Amazon DynamoDB. Puede utilizar cualquier atributo, aunque se encuentre anidado profundamente en varias listas y mapas.

Ejemplo de elemento: ProductCatalog

Lo siguiente es una representación de un elementos en la tabla ProductCatalog. Esta tabla se describe en Ejemplos de tablas y datos.

{ "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" }

Tenga en cuenta lo siguiente:

  • El valor de la clave de partición (Id) es 123. No hay clave de ordenación.

  • Los tipos de datos de la mayoría de los atributos son escalares, tales como String, Number, Boolean y Null.

  • Un atributo (Color) es de tipo String Set.

  • Los siguientes atributos tienen tipos de datos de documento:

    • Lista de RelatedItems. Cada componente es un Id de un producto relacionado.

    • Mapa de imágenes (Pictures). Cada componente es una descripción breve de una imagen, junto con una dirección URL del archivo de imagen correspondiente.

    • Mapa de imágenes (ProductReviews). Cada componente representa una clasificación y una lista de opiniones correspondientes a esa clasificación. Inicialmente, este mapa se rellena con opiniones de cinco estrellas y una estrella.

Atributos de nivel superior

Se considera que un atributo es de nivel superior si no está integrado en otro atributo. En el elemento ProductCatalog, los atributos de nivel superior son:

  • Id

  • Title

  • Description

  • BicycleType

  • Brand

  • Price

  • Color

  • ProductCategory

  • InStock

  • QuantityOnHand

  • RelatedItems

  • Pictures

  • ProductReviews

  • Comment

  • Safety.Warning

Todos estos atributos de nivel superior son escalares, con la salvedad de Color (lista), RelatedItems (lista), Pictures (mapa) y ProductReviews (mapa).

Atributos anidados

Se considera que un atributo es anidado si está integrado en otro atributo. Para obtener acceso a un atributo anidado, se utilizan los operadores de desreferenciación:

  • [n]: para elementos de lista

  • . (punto): para elementos de mapa

Acceso a los elementos de la lista

El operador de desreferencia de un elemento de la lista es [N], donde n es el número del elemento. Las entradas de lista están basadas en cero; es decir, [0] representa la primera entrada de la lista, [1] representa la segunda, y así sucesivamente. Estos son algunos ejemplos:

  • MyList[0]

  • AnotherList[12]

  • ThisList[5][11]

La entrada ThisList[5] es una lista anidada en sí misma. Por consiguiente, ThisList[5][11] se refiere al duodécimo componente de esa lista.

El número contenido entre corchetes debe ser un entero no negativo. Por lo tanto, las siguientes expresiones no son válidas:

  • MyList[-1]

  • MyList[0.4]

Acceso a los elementos de un mapa

El operador de desreferenciación de una entrada de un mapa es . (un punto). Utilice el punto como separador entre las entradas de un mapa:

  • MyMap.nestedField

  • MyMap.nestedField.deeplyNestedField

Rutas de documento

En una expresión, se utiliza una ruta de documento para indicar a DynamoDB dónde se encuentra un atributo. En el caso de un atributo de nivel superior, la ruta de documento es el nombre de atributo. En el caso de un atributo anidado, se utilizan operadores de desreferenciación para construir la ruta de documento.

A continuación se indican algunos ejemplos de rutas de documentos. Consulte el elemento mostrado en Especificación de atributos de elementos mediante expresiones.

  • Atributo escalar de nivel superior.

    Description

  • Atributo de lista de nivel superior. (Devuelve la lista completa, no solo algunos de los componentes).

    RelatedItems

  • Tercera entrada de la lista RelatedItems. Recuerde que las entradas de lista se basan en cero.

    RelatedItems[2]

  • Imagen frontal del producto.

    Pictures.FrontView

  • Todas las opiniones de cinco estrellas.

    ProductReviews.FiveStar

  • Primera de las opiniones de cinco estrellas.

    ProductReviews.FiveStar[0]

nota

La profundidad máxima de una ruta de documento es 32. Por lo tanto, el número de operadores de desreferenciación de una ruta no puede superar este límite.

Puede utilizar cualquier nombre de atributo en la ruta de un documento siempre que cumpla estos requisitos:

  • El nombre del atributo debe empezar con una almohadilla (#)

  • El primer carácter es a-z, A-Z o 0-9

  • El segundo carácter (si está presente) es a-z o A-Z

nota

Si un nombre de atributo no cumple este requisito, tendrá que definir un nombre de atributo de expresión como marcador de posición.

Para obtener más información, consulte Nombres de atributos de expresión en DynamoDB.