Anunciamos
Consulta y examen de una tabla de DynamoDB
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 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:
Instale Node.js. Para obtener más información, consulte el sitio web de Node.js
. Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información acerca de cómo crear un archivo de credenciales compartidas, consulte Carga de credenciales en Node.js desde el archivo de credenciales compartidas.
Cree una tabla de DynamoDB a cuyos elementos pueda obtener acceso. Para obtener más información acerca de cómo crear una tabla de DynamoDB, consulte Creación y uso de tablas en DynamoDB.
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 ejemplo 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 ejemplo se puede encontrar aquí en GitHub