Consulta y examen de una tabla de DynamoDB - AWS SDK for JavaScript

Anunciamos la próxima AWS SDK for JavaScript versión end-of-support para la versión 2. Le recomendamos que migre a la AWS SDK for JavaScript versión 3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

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.

Consulta y examen de una tabla de DynamoDB

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo consultar y examinar una tabla de DynamoDB para buscar elementos.

El escenario

Con las consultas se encuentran elementos de una tabla o un índice secundario usando únicamente valores de atributos de la clave principal. Debe proporcionar un nombre de clave de partición y un valor que deben buscarse. También puede proporcionar un nombre y un valor de clave de ordenación y utilizar un operador de comparación para ajustar los resultados de búsqueda. El examen busca elementos comprobando cada uno de ellos en la tabla especificada.

En este ejemplo, va a utilizar una serie de módulos de Node.js para identificar uno o varios elementos que desea recuperar de una tabla de DynamoDB. El código utiliza el SDK para JavaScript para consultar y analizar tablas mediante los métodos siguientes de la clase de cliente de DynamoDB:

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:

Consulta de una tabla

En este ejemplo, se consulta una tabla que contiene información de episodios sobre una serie de vídeos y se devuelven los títulos y subtítulos de episodios de la segunda temporada posteriores al episodio 9 que contienen una frase especificada en su subtítulo.

Cree un módulo de Node.js con el nombre de archivo ddb_query.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de servicio de AWS.DynamoDB. Cree un objeto JSON que contenga los parámetros necesarios para consultar la tabla, que en este ejemplo incluye el nombre de la tabla, los ExpressionAttributeValues necesarios para la consulta, una KeyConditionExpression que utilice dichos valores para definir qué elementos devuelve la consulta, así como los nombres de los valores de atributos que deben devolverse para cada elemento. Llame al método query del objeto de servicio de DynamoDB.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { ExpressionAttributeValues: { ":s": { N: "2" }, ":e": { N: "09" }, ":topic": { S: "PHRASE" }, }, KeyConditionExpression: "Season = :s and Episode > :e", ProjectionExpression: "Episode, Title, Subtitle", FilterExpression: "contains (Subtitle, :topic)", TableName: "EPISODES_TABLE", }; ddb.query(params, function (err, data) { if (err) { console.log("Error", err); } else { //console.log("Success", data.Items); data.Items.forEach(function (element, index, array) { console.log(element.Title.S + " (" + element.Subtitle.S + ")"); }); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ddb_query.js

Este código de muestra se puede encontrar aquí en GitHub.

Examen de una tabla

Cree un módulo de Node.js con el nombre de archivo ddb_scan.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de servicio de AWS.DynamoDB. Cree un objeto JSON que contenga los parámetros necesarios para examinar la tabla en búsqueda de elementos, que en este ejemplo incluyen el nombre de la tabla, la lista de los valores de atributos que deben devolverse por cada elemento coincidente y una expresión para filtrar el conjunto de resultados para encontrar elementos que contengan una frase especificada. Llame al método scan del objeto de servicio de DynamoDB.

// Load the AWS SDK for Node.js. var AWS = require("aws-sdk"); // Set the AWS Region. AWS.config.update({ region: "REGION" }); // Create DynamoDB service object. var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); const params = { // Specify which items in the results are returned. FilterExpression: "Subtitle = :topic AND Season = :s AND Episode = :e", // Define the expression attribute value, which are substitutes for the values you want to compare. ExpressionAttributeValues: { ":topic": { S: "SubTitle2" }, ":s": { N: 1 }, ":e": { N: 2 }, }, // Set the projection expression, which are the attributes that you want. ProjectionExpression: "Season, Episode, Title, Subtitle", TableName: "EPISODES_TABLE", }; ddb.scan(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); data.Items.forEach(function (element, index, array) { console.log( "printing", element.Title.S + " (" + element.Subtitle.S + ")" ); }); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ddb_scan.js

Este código de muestra se puede encontrar aquí en GitHub.