Interrogazione e scansione di una tabella DynamoDB - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interrogazione e scansione di una tabella DynamoDB

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come interrogare e scansionare una tabella DynamoDB alla ricerca di elementi.

Lo scenario

Eseguire le query consente di trovare le voci in una tabella o un indice secondario utilizzando solo i valori degli attributi della chiave primaria. È necessario fornire un nome e un valore della chiave di partizione da cercare. Puoi inoltre fornire un nome e un valore della chiave di ordinamento e utilizzare un operatore di confronto per perfezionare i risultati della ricerca. La scansione permette di trovare le voci controllando ogni voce nella tabella specificata.

In questo esempio, si utilizza una serie di moduli Node.js per identificare uno o più elementi che si desidera recuperare da una tabella DynamoDB. Il codice utilizza l'SDK per JavaScript interrogare e scansionare le tabelle utilizzando questi metodi della classe client DynamoDB:

Attività prerequisite

Per configurare ed eseguire questo esempio, è necessario completare queste attività:

Esecuzione di query su una tabella

In questo esempio si esegue una query su una tabella che contiene informazioni sull'episodio di una serie di video e che restituisce i titoli e sottotitoli degli episodi della seconda stagione dopo l'episodio 9 che contengono una determinata frase nel loro sottotitolo.

Crea un modulo Node.js con il nome del file ddb_query.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere a DynamoDB, crea un AWS.DynamoDB oggetto servizio. Crea un oggetto JSON che contiene i parametri necessari per eseguire una query sulla tabella, che in questo esempio include il nome della tabella, i ExpressionAttributeValues necessari per la query, una KeyConditionExpression che utilizza tali valori per definire quali voci la query restituisce e i nomi dei valori degli attributi da restituire per ciascuna voce. Chiama il query metodo dell'oggetto servizio 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 + ")"); }); } });

Digita la seguente riga di comando per eseguire l'esempio.

node ddb_query.js

Questo codice di esempio può essere trovato qui. GitHub

Scansione di una tabella

Crea un modulo Node.js con il nome del file ddb_scan.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere a DynamoDB, crea un AWS.DynamoDB oggetto servizio. Crea un oggetto JSON che contiene i parametri necessari per eseguire la scansione della tabella per le voci, che in questo esempio include il nome della tabella, l'elenco dei valori degli attributi da restituire per ogni corrispondenza e un'espressione per filtrare il set di risultati per trovare le voci che contengono una determinata frase. Chiama il scan metodo dell'oggetto servizio 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 + ")" ); }); } });

Digita la seguente riga di comando per eseguire l'esempio.

node ddb_scan.js

Questo codice di esempio può essere trovato qui. GitHub