

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Proyecciones
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-projections"></a>

Al leer objetos de DynamoDB mediante las operaciones `GetItem`, `Scan`, `Query`, `BatchGetItem` y `TransactGetItems`, tiene la posibilidad de especificar una proyección para identificar los atributos deseados. La proyección tiene la siguiente estructura, que es similar a los filtros: 

```
"projection" : {
    "expression" : "projection expression"
    "expressionNames" : {
        "#name" : "name",
    }
}
```

Los campos se definen de la siguiente manera:

**`expression`**   
La expresión de proyección, que es una cadena. Para recuperar un solo atributo, especifique su nombre. Si desea obtener varios atributos, separe sus nombres mediante comas. Para obtener más información sobre la redacción de expresiones de proyección, consulte la documentación relativa a las [expresiones de proyección de DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ProjectionExpressions.html). Este campo es obligatorio. 

 **`expressionNames`**   
Las sustituciones de los marcadores de posición de *nombre* de atributo de expresión, en forma de pares de clave-valor. La clave corresponde a un marcador de posición de nombre utilizado en la `expression`. El valor debe ser una cadena que corresponda al nombre del atributo del elemento en DynamoDB. Este campo es opcional y solo debe rellenarse con las sustituciones de marcadores de posición de nombre de atributo de expresión que se usen en la `expression`. Para obtener más información acerca de `expressionNames`, consulte la [documentación de DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html). 

## Ejemplo 1
<a name="id25"></a>

El siguiente ejemplo es una sección de proyección para un mapeo de VTL en el que solo los atributos `author` y `id` se devuelven de DynamoDB:

```
"projection" : {
    "expression" : "#author, id",
    "expressionNames" : {
        "#author" : "author"
    }
}
```

**sugerencia**  
[Puedes acceder a tu conjunto de selección de solicitudes de GraphQL mediante \$1context.info. selectionSetList](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference.html#aws-appsync-resolver-context-reference-info). Este campo permite enmarcar su expresión de proyección de forma dinámica según sus requisitos.

**nota**  
Al utilizar expresiones de proyección con las operaciones `Query` y `Scan`, el valor de `select` debe ser `SPECIFIC_ATTRIBUTES`. Para obtener más información, consulte la [documentación de DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-Select).