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

La guía de API referencia de la versión AWS SDK for JavaScript 3 describe en detalle todas las API operaciones de la AWS SDK for JavaScript versión 3 (V3).

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 Node.js para identificar uno o varios elementos que desea recuperar de una tabla de DynamoDB . El código usa SDK for JavaScript para consultar y escanear tablas mediante los siguientes métodos de la clase de cliente DynamoDB:

Tareas previas necesarias

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

  • Configure el entorno del proyecto para ejecutar estos ejemplos de Node.js e instale los módulos necesarios AWS SDK for JavaScript y de terceros. Siga las instrucciones que figuran en GitHub.

  • Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información sobre cómo proporcionar un archivo de credenciales compartido, consulte Archivos de configuración y credenciales compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas.

  • 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.

importante

En estos ejemplos se utiliza ECMAScript6 (ES6). Requiere la versión 13.x o superior de Node.js. Para descargar e instalar la versión más reciente de Node.js, consulte Descargas de Node.js.

No obstante, si prefiere utilizar la sintaxis CommonJS, consulte Sintaxis ES6/commonJS de JavaScript.

nota

Para obtener información sobre los tipos de datos utilizados en estos ejemplos, consulte Tipos de datos y reglas de denominación compatibles en Amazon DynamoDB.

Consulta de una tabla

Cree un módulo de Node.js con el nombre de archivo query.js. Asegúrese de configurarlo SDK como se mostró anteriormente, incluida la descarga de los clientes y paquetes necesarios. Para acceder a DynamoDB, cree un objeto de servicio de cliente de DynamoDB. Cree un JSON objeto 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, un objeto KeyConditionExpression que utilice esos valores para definir los elementos que devuelve la consulta y los nombres de los valores de atributo que se deben devolver para cada elemento. Llame al método QueryCommand del objeto de servicio de DynamoDB.

import { DynamoDBClient, QueryCommand } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new QueryCommand({ KeyConditionExpression: "Flavor = :flavor", // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors ExpressionAttributeValues: { ":flavor": { S: "Key Lime" }, ":searchKey": { S: "no coloring" }, }, FilterExpression: "contains (Description, :searchKey)", ProjectionExpression: "Flavor, CrustType, Description", TableName: "Pies", }); const response = await client.send(command); response.Items.forEach(function (pie) { console.log(`${pie.Flavor.S} - ${pie.Description.S}\n`); }); return response; };

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

node query.js

Puedes encontrar este código de ejemplo aquí en adelante GitHub.

Análisis de una tabla

Cree un módulo de Node.js con el nombre de archivo scan.js. Asegúrese de configurarlo SDK como se mostró anteriormente, incluida la descarga de los clientes y paquetes necesarios. Para acceder a DynamoDB, cree un objeto de servicio de cliente de DynamoDB. Cree un JSON objeto que contenga los parámetros necesarios para buscar elementos en la tabla, que en este ejemplo incluye el nombre de la tabla, la lista de valores de atributos que se van a devolver para cada elemento coincidente y una expresión para filtrar el conjunto de resultados y buscar elementos que contengan una frase específica. Llame al método ScanCommand del objeto de servicio de DynamoDB.

import { DynamoDBClient, ScanCommand } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new ScanCommand({ FilterExpression: "CrustType = :crustType", // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors ExpressionAttributeValues: { ":crustType": { S: "Graham Cracker" }, }, ProjectionExpression: "Flavor, CrustType, Description", TableName: "Pies", }); const response = await client.send(command); response.Items.forEach(function (pie) { console.log(`${pie.Flavor.S} - ${pie.Description.S}\n`); }); return response; };

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

node scan.js

Este código de ejemplo se encuentra aquí en GitHub.