Expresiones de proyección - Amazon DynamoDB

Expresiones de proyección

Para leer datos de una tabla, se utilizan operaciones tales como GetItem, Query o Scan. De forma predeterminada, Amazon DynamoDB devuelve todos los atributos de los elementos. Si desea obtener solo uno en lugar de todos ellos, debe usar una expresión de proyección.

Una expresión de proyección es una cadena que identifica los atributos que se desea. Para recuperar un solo atributo, especifique su nombre. Si desea obtener varios atributos, separe sus nombres mediante comas.

A continuación se muestran ejemplos de expresiones de proyección basadas en el elemento ProductCatalog de Referencia a atributos de elementos mediante expresiones en DynamoDB:

  • Un solo atributo de nivel superior.

    Title

  • Tres atributos de nivel superior. DynamoDB recupera todo el conjunto Color.

    Title, Price, Color

  • Cuatro atributos de nivel superior. DynamoDB devolverá todo el contenido de RelatedItems y ProductReviews.

    Title, Description, RelatedItems, ProductReviews

nota

La expresión de proyección no modifica el consumo de rendimiento aprovisionado. DynamoDB determina las unidades de capacidad consumidas según el tamaño de los elementos y no según la cantidad de datos que se devuelven a una aplicación.

Palabras reservadas y caracteres especiales

DynamoDB tiene palabras reservadas y caracteres especiales. DynamoDB le permite utilizar estas palabras reservadas y caracteres especiales para nombres, pero le recomendamos que evite hacerlo, porque tendría que usar alias para ellos cada vez que utilizase estos nombres en una expresión. Para ver una lista completa, consulte Palabras reservadas en DynamoDB.

Deberá usar los nombres de los atributos de la expresión en lugar del nombre real si:

  • El nombre del atributo está en la lista de palabras reservadas en DynamoDB.

  • El nombre del atributo no cumple el requisito de que el primer carácter sea a-z o A-Z y que el segundo carácter (si lo hay) sea a-Z, A-Z o 0-9.

  • El nombre del atributo contiene un signo # (hash) o : (dos puntos).

En el ejemplo de la AWS CLI siguiente se muestra cómo usar una expresión de proyección con una operación GetItem. La expresión de proyección recupera un atributo escalar de nivel superior (Description), la primera entrada de una lista (RelatedItems[0]) y una lista anidada en un mapa (ProductReviews.FiveStar).

aws dynamodb get-item \ --table-name ProductCatalog \ --key '"Id": { "N": "123" } \ --projection-expression "Description, RelatedItems[0], ProductReviews.FiveStar"

Para este ejemplo, se devolvería el siguiente código JSON.

{ "Item": { "Description": { "S": "123 description" }, "ProductReviews": { "M": { "FiveStar": { "L": [ { "S": "Excellent! Can't recommend it highly enough! Buy it!" }, { "S": "Do yourself a favor and buy this." } ] } } }, "RelatedItems": { "L": [ { "N": "341" } ] } } }