DynamoDB-Tabelle abfragen und scannen - AWS SDK for JavaScript

Helfen Sie uns, dasAWS SDK for JavaScriptVersion 3 (V3) -Dokumentation durch Feedback unter Verwendung derFeedbackLink oder erstellen Sie ein Problem oder ziehen Sie eine Anfrage anGitHubaus.

DieAWS SDK for JavaScriptReferenzhandbuch zur V3-API-Referenzbeschreibt ausführlich alle API-Operationen für dieAWS SDK for JavaScriptVersion 3 (V3).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

DynamoDB-Tabelle abfragen und scannen

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So fragen Sie eine DynamoDB-Tabelle ab und scannen sie nach Elementen.

Das Szenario

Die Abfrage findet Elemente in einer Tabelle oder einem Sekundärindex nur über Primärschlüsselattributwerte. Sie müssen einen Partitionsschlüsselnamen und einen Wert angeben, nach dem gesucht werden soll. Sie können auch einen Sortierschlüsselnamen und Wert angeben, und einen Vergleichsoperator verwenden, um die Suchergebnisse zu verfeinern. Das Scannen findet Elemente, indem jedes Element in der angegebenen Tabelle überprüft wird.

In diesem Beispiel verwenden Sie eine Reihe von Modulen von Node.js zum Identifizieren eines oder mehrerer Elemente, die Sie aus einer DynamoDB-Tabelle abrufen möchten. Der Code verwendet das SDK für JavaScript zum Abfragen und Scannen von Tabellen unter Verwendung dieser Methoden der DynamoDB -Client-Klasse:

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels schließen Sie zunächst diese Aufgaben ab:

  • Richten Sie die Projektumgebung ein, um diese Node.js Beispiele auszuführen, und installieren Sie die erforderlichenAWS SDK for JavaScriptDrittanbieter-Module. Folgen Sie den Anweisungen fürGitHubaus.

  • Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zum Bereitstellen einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Laden der Anmeldeinformationen in Node.js aus der Datei mit gemeinsamen -Anmeld.

  • Erstellen Sie eine DynamoDB-Tabelle, auf deren Elemente Sie zugreifen können. Weitere Informationen zum Erstellen einer DynamoDB-Tabelle finden Sie unterErstellen und Verwenden von Tabellen in DynamoDBaus.

Wichtig

Diese Beispiele verwenden ECMASCRIPT6 (ES6). Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.js wird heruntergeladen.aus.

Wenn Sie jedoch lieber CommonJS-Sytax verwenden möchten, lesen Sie bitteJavaScript ES6/CommonJS-Syntax

Abfragen einer Tabelle

In diesem Beispiel wird eine Tabelle abgefragt, die Informationen zu Episoden einer Videoserie enthält, und die Episodentitel und -untertitel von Episoden der zweiten Staffel nach Episode 9 zurückgegeben, die einen angegebene Begriff im Untertitel enthalten.

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamenddbClient.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das DynamoDB-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion.

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

Dieser Code ist verfügbarhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ddb_query.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren, einschließlich des Herunterladens der erforderlichen Clients und Pakete. Um auf DynamoDB zuzugreifen, erstellen Sie eineDynamoDBclient-Servicec-Objekt. Erstellen Sie ein JSON-Objekt mit den erforderlichen Parametern für das Abfragen der Tabelle, das in diesem Beispiel den Tabellennamen, die von der Abfrage benötigten ExpressionAttributeValues, einen KeyConditionExpression, der diese Werte verwendet, um zu definieren, welche Elemente die Abfrage zurück gibt, und die Namen der für jedes Element zurückzugebenden Attributwerte beinhaltet. Rufen Sie dieQueryCommand-Methode des DynamoDB-Serviceobjekts.

Der Primärschlüssel für die Tabelle besteht aus den folgenden Attributen:

  • Season

  • Episode

Sie können den Code ausführenhier auf GitHubum die Tabelle zu erstellen, auf die diese Abfrage abzielt, und den Codehier auf GitHubum die Tabelle zu füllen.

// Import required AWS SDK clients and commands for Node.js import { QueryCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { KeyConditionExpression: "Season = :s and Episode > :e", FilterExpression: "contains (Subtitle, :topic)", ExpressionAttributeValues: { ":s": { N: "1" }, ":e": { N: "2" }, ":topic": { S: "SubTitle" }, }, ProjectionExpression: "Episode, Title, Subtitle", TableName: "EPISODES_TABLE", }; export const run = async () => { try { const data = await ddbClient.send(new QueryCommand(params)); return data; data.Items.forEach(function (element, index, array) { console.log(element.Title.S + " (" + element.Subtitle.S + ")"); }); } catch (err) { console.error(err); } }; run();

Geben Sie an der Eingabeaufforderung Folgendes bei der Eingabeaufforderung ein.

node ddb_query.js

Diesen Beispiel-Code finden Siehier auf GitHubaus.

Scannen einer Tabelle

Erstellen eineslibsErstellen Sie ein Modul Node.js mit dem DateinamenddbClient.jsaus. Kopieren Sie den folgenden Code und fügen Sie ihn ein, wodurch das DynamoDB-Clientobjekt erstellt wird. ErsetzenREGIONmit IhrerAWSRegion.

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

Dieser Code ist verfügbarhier auf GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ddb_scan.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren, einschließlich des Herunterladens der erforderlichen Clients und Pakete. Um auf DynamoDB zuzugreifen, erstellen Sie eineDynamoDBClient-Serviceobjekt. Erstellen Sie ein JSON-Objekt mit den erforderlichen Parametern für das Scannen der Tabelle nach Elementen, das in diesem Beispiel den Namen der Tabelle, die Liste der Attributwerte, die für jedes übereinstimmende Element zurückgegeben werden sollen, und einen Ausdruck zum Filtern des Ergebnissatzes beinhaltet, um nach Elementen mit einem bestimmten Begriff zu suchen. Rufen Sie dieScanQuery-Methode des DynamoDB-Serviceobjekts.

// Import required AWS SDK clients and commands for Node.js import { ScanCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters. export 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 the the attributes that you want. ProjectionExpression: "Season, Episode, Title, Subtitle", TableName: "EPISODES_TABLE", }; export const run = async () => { try { const data = await ddbClient.send(new ScanCommand(params)); return data; data.Items.forEach(function (element, index, array) { console.log(element.Title.S + " (" + element.Subtitle.S + ")"); }); } catch (err) { console.log("Error", err); } } run();

Geben Sie an der Eingabeaufforderung Folgendes bei der Eingabeaufforderung ein.

node ddb_scan.js

Diesen Beispiel-Code finden Siehier auf GitHubaus.