Interrogation et analyse d'une table DynamoDB - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interrogation et analyse d'une table DynamoDB

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment interroger et analyser une table DynamoDB à la recherche d'éléments.

Scénario

L'interrogation recherche les éléments d'une table ou d'un index secondaire uniquement à l'aide des valeurs d'attribut de clé primaire. Vous devez fournir un nom de clé de partition et une valeur à rechercher. Vous pouvez également indiquer un nom de clé de tri et une valeur, et utiliser un opérateur de comparaison pour affiner les résultats de recherche. L'analyse recherche les éléments en vérifiant chacun d'eux dans la table spécifiée.

Dans cet exemple, vous utilisez une série de modules Node.js pour identifier un ou plusieurs éléments que vous souhaitez récupérer dans une table DynamoDB. Le code utilise le SDK pour interroger et analyser des tables JavaScript à l'aide des méthodes suivantes de la classe client DynamoDB :

Tâches prérequises

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :

Interrogation d'une table

Cet exemple interroge une table qui contient des informations sur chaque épisode d'une série de vidéos, en renvoyant les titres et les sous-titres des épisodes de la deuxième saison après l'épisode 9 qui contiennent une expression spécifiée dans leur sous-titre.

Créez un module Node.js nommé ddb_query.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un AWS.DynamoDB objet de service. Créez un objet JSON contenant les paramètres requis pour interroger la table, ce qui dans cet exemple inclut le nom de la table, les valeurs ExpressionAttributeValues requises par la requête, une KeyConditionExpression qui utilise ces valeurs pour définir quels éléments sont renvoyés par la requête, ainsi que les noms des valeurs d'attribut à renvoyer pour chaque élément. Appelez la query méthode de l'objet de service 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 + ")"); }); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ddb_query.js

Cet exemple de code se trouve ici sur GitHub.

Analyse d'une table

Créez un module Node.js nommé ddb_scan.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un AWS.DynamoDB objet de service. Créez un objet JSON contenant les paramètres requis pour analyser les éléments de la table, ce qui dans cet exemple inclut le nom de la table, la liste des valeurs d'attribut à renvoyer pour chaque élément correspondant et une expression permettant de filtrer le jeu de résultats afin de rechercher les éléments contenant une expression spécifiée. Appelez la scan méthode de l'objet de service 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 + ")" ); }); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ddb_scan.js

Cet exemple de code se trouve ici sur GitHub.