

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Uso do cliente de documentos do DynamoDB
<a name="dynamodb-example-document-client"></a>

![JavaScript code example that applies to Node.js execution](http://docs.aws.amazon.com/pt_br/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Este exemplo de código Node.js mostra:**
+ Como acessar uma tabela do usando o cliente de documento.

## O cenário
<a name="dynamodb-example-document-client-scenario"></a>

O cliente de documento do DynamoDB simplifica o trabalho com itens abstraindo a noção de valores de atributo. Essa abstração anota tipos JavaScript nativos fornecidos como parâmetros de entrada, bem como converte dados de resposta anotados em tipos JavaScript nativos.

Para obter mais informações sobre a classe de cliente de documento do DynamoDB, consulte [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html) na Referência de API. Para obter mais informações sobre programação com o Amazon DynamoDB, consulte [Programação com o DynamoDB no Guia do Desenvovledor Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.html).

Neste exemplo, você usa uma série de módulos de Node.js para realizar operações básicas em uma tabela do DynamoDB usando o cliente de documento. O código usa o SDK para JavaScript para consultar e verificar tabelas usando esses métodos da classe de cliente de documento do DynamoDB:
+ [get](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#get-property)
+ [put](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property)
+ [update](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#update-property)
+ [query](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#query-property)
+ [delete](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#delete-property)

## Tarefas de pré-requisito
<a name="dynamodb-example-document-client-prerequisites"></a>

Para configurar e executar este exemplo, primeiro conclua estas tarefas:
+ Instale o Node.js. Para obter mais informações, consulte o website [Node.js](https://nodejs.org).
+ Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais compartilhadas, consulte [Carregar credenciais em Node.js do arquivo de credenciais compartilhado](loading-node-credentials-shared.md).
+ Crie uma tabela do DynamoDB cujos itens você possa acessar. Para obter mais informações sobre como criar uma tabela do DynamoDB usando o SDK para JavaScript, consulte [Criação e uso de tabelas no DynamoDB](dynamodb-examples-using-tables.md). Também é possível usar o [console do ](https://console.aws.amazon.com/dynamodb/) para criar uma tabela.

## Obtenção de um item de uma tabela
<a name="dynamodb-example-document-client-get"></a>

Crie um módulo do Node.js com o nome de arquivo `ddbdoc_get.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do `AWS.DynamoDB.DocumentClient`. Crie um objeto JSON que contenha os parâmetros necessários para obter um item da tabela, que, neste exemplo, inclui o nome da tabela, o nome da chave hash nessa tabela e o valor da chave hash do item que você deseja receber. Chame o método `get` do cliente de documento do DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  TableName: "EPISODES_TABLE",
  Key: { KEY_NAME: VALUE },
};

docClient.get(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Item);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node ddbdoc_get.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddbdoc_get.js).

## Colocar um item em uma tabela
<a name="dynamodb-example-document-client-put"></a>

Crie um módulo do Node.js com o nome de arquivo `ddbdoc_put.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do `AWS.DynamoDB.DocumentClient`. Crie um objeto JSON que contenha os parâmetros necessários para gravar um item na tabela, que, neste exemplo, inclui o nome da tabela e uma descrição do item a ser adicionado ou atualizado que inclua a chave hash e o valor, bem como nomes e valores de atributos a serem definidos no item. Chame o método `put` do cliente de documento do DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  TableName: "TABLE",
  Item: {
    HASHKEY: VALUE,
    ATTRIBUTE_1: "STRING_VALUE",
    ATTRIBUTE_2: VALUE_2,
  },
};

docClient.put(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node ddbdoc_put.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddbdoc_put.js).

## Atualizar um item em uma tabela
<a name="dynamodb-example-document-client-update"></a>

Crie um módulo do Node.js com o nome de arquivo `ddbdoc_update.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do `AWS.DynamoDB.DocumentClient`. Crie um objeto JSON que contenha os parâmetros necessários para gravar um item na tabela, que, neste exemplo, inclui o nome da tabela, a chave do item a ser atualizada, um conjunto de `UpdateExpressions` que definem os atributos do item a ser atualizado com tokens com valores atribuídos nos parâmetros `ExpressionAttributeValues`. Chame o método `update` do cliente de documento do DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

// Create variables to hold numeric key values
var season = SEASON_NUMBER;
var episode = EPISODES_NUMBER;

var params = {
  TableName: "EPISODES_TABLE",
  Key: {
    Season: season,
    Episode: episode,
  },
  UpdateExpression: "set Title = :t, Subtitle = :s",
  ExpressionAttributeValues: {
    ":t": "NEW_TITLE",
    ":s": "NEW_SUBTITLE",
  },
};

docClient.update(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node ddbdoc_update.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddbdoc_update.js).

## Consultar uma tabela
<a name="dynamodb-example-document-client-query"></a>

Este exemplo consulta uma tabela que contém informações do episódio sobre uma série de vídeos, retornando os títulos e as legendas do episódio da segunda temporada anteriores ao episódio 9 que contenham uma frase especificada na legenda.

Crie um módulo do Node.js com o nome de arquivo `ddbdoc_query.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do `AWS.DynamoDB.DocumentClient`. Crie um objeto JSON que contenha os parâmetros necessários para consultar a tabela, que, neste exemplo, inclui o nome da tabela, o `ExpressionAttributeValues` necessário pela consulta e um `KeyConditionExpression` que usa esses valores para definir quais itens a consulta retorna. Chame o método `query` do cliente de documento do DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  ExpressionAttributeValues: {
    ":s": 2,
    ":e": 9,
    ":topic": "PHRASE",
  },
  KeyConditionExpression: "Season = :s and Episode > :e",
  FilterExpression: "contains (Subtitle, :topic)",
  TableName: "EPISODES_TABLE",
};

docClient.query(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Items);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node ddbdoc_query.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddbdoc_query.js).

## Excluir um item de uma tabela
<a name="dynamodb-example-document-client-delete"></a>

Crie um módulo do Node.js com o nome de arquivo `ddbdoc_delete.js`. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o DynamoDB, crie um objeto do `AWS.DynamoDB.DocumentClient`. Crie um objeto JSON que contenha os parâmetros necessários para excluir um item na tabela, que, neste exemplo, inclui o nome da tabela, bem como o nome e o valor da chave hash do item que você deseja excluir. Chame o método `delete` do cliente de documento do DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  Key: {
    HASH_KEY: VALUE,
  },
  TableName: "TABLE",
};

docClient.delete(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node ddbdoc_delete.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddbdoc_delete.js).