Lesen und Schreiben eines einzelnen Elements in DynamoDB - AWS SDK for JavaScript

DieAWS SDK for JavaScriptV3-API-Referenzhandbuchbeschreibt detailliert alle API-Operationen fürAWS 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.

Lesen und Schreiben eines einzelnen Elements in DynamoDB

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So fügen Sie ein Element in einer DynamoDB-Tabelle hinzu.

  • So rufen Sie ein Element in einer DynamoDB-Tabelle ab.

  • So löschen Sie ein Element in einer DynamoDB-Tabelle.

Das Szenario

In diesem Beispiel verwenden Sie eine Reihe von Modulen von Node.js zum Lesen und Schreiben eines Elements in einer DynamoDB-Tabelle, indem Sie diese Methoden derDynamoDB client class:

Erforderliche Aufgaben

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

Wichtig

In diesen Beispielen wird ECMAScript6 (ES6) verwendet. Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen der neuesten Version von Node.js finden Sie unterNode.jsaus.

Wenn Sie jedoch die CommonJS-Syntax bevorzugen, lesen Sie bitteJavaScript ES6/CommonJS-Syntax

Anmerkung

Weitere Informationen über die in diesen Beispielen verwendeten Datentypen finden Sie unterUnterstützte Datentypen und Benennungsregeln in Amazon DynamoDBaus.

Schreiben eines Elements

Erstellen eineslibsund erstellen Sie ein Modul Node.js mit dem DateinamenddbClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das DynamoDB-Clientobjekt erstellt wird. ErsetzenREGION with your AWSRegion.

// 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 GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ddb_putitem.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 eineDynamoDB-Serviceobjekt. Erstellen Sie ein JSON-Objekt mit den erforderlichen Parametern für das Hinzufügen eines Elements, das in diesem Beispiel den Namen der Tabelle und eine Map beinhaltet, die die festzulegenden Attribute und Werte für jedes Attribut definiert. Aufrufen Sie diePutItemCommand-Methode des DynamoDB-Client-Serviceobjekts.

Anmerkung

ErsetzenTABLE_NAMEmit dem Namen der Tabelle zurück.

Anmerkung

Das folgende Codebeispiel schreibt in eine Tabelle mit einem Primärschlüssel, der nur aus einem Partitionsschlüssel besteht -CUSTOMER_ID-CUSTOMER_NAMEaus. Wenn der Primärschlüssel der Tabelle nur aus einem Partitionsschlüssel besteht, geben Sie nur den Partitionsschlüssel an.

// Import required AWS SDK clients and commands for Node.js import { PutItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "TABLE_NAME", Item: { CUSTOMER_ID: { N: "001" }, CUSTOMER_NAME: { S: "Richard Roe" }, }, }; export const run = async () => { try { const data = await ddbClient.send(new PutItemCommand(params)); console.log(data); return data; } catch (err) { console.error(err); } }; run();

Geben Sie zum Ausführen des Beispiels Folgendes ein.

node ddb_putitem.js

Diesen Beispielcode finden Siehier GitHubaus.

Aktualisieren eines Elements

Sie können ein vorhandenes Element in der -Tabelle aktualisieren. Erstellen eineslibsund erstellen Sie ein Modul Node.js mit dem DateinamenddbClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das DynamoDB-Clientobjekt erstellt wird. ErsetzenREGION with your AWSRegion.

// 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 GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ddb_updateitem.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 eineDynamoDB-Serviceobjekt. Erstellen Sie ein JSON-Objekt mit den erforderlichen Parametern für das Hinzufügen eines Elements, das in diesem Beispiel den Namen der Tabelle, den zu aktualisierenden Schlüssel und einen Datumsausdruck beinhaltet, der die neuen Attributnamen und Werte für jedes neue Attribut zuordnet. Aufrufen Sie dieUpdateItemCommand-Methode des DynamoDB-Client-Serviceobjekts.

Anmerkung

ErsetzenTABLE_NAMEmit dem Namen der Tabelle zurück.

Anmerkung

Das folgende Codebeispiel schreibt in eine Tabelle mit einem Primärschlüssel, der nur aus einem Partitionsschlüssel besteht. Wenn der Primärschlüssel der Tabelle nur aus einem Partitionsschlüssel besteht, geben Sie nur den Partitionsschlüssel an.

// Import required AWS SDK clients and commands for Node.js import { UpdateItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; export const params = { TableName: "TABLE_NAME", /* Convert the attribute JavaScript object you are updating to the required Amazon DynamoDB record. The format of values specifies the datatype. The following list demonstrates different datatype formatting requirements: String: "String", NumAttribute: 1, BoolAttribute: true, ListAttribute: [1, "two", false], MapAttribute: { foo: "bar" }, NullAttribute: null */ Key: { primaryKey: {"ATTRIBUTE_TYPE":"KEY_VALUE"}, // For example, 'Season': {N:2}. sortKey: {"ATTRIBUTE_TYPE":"KEY_VALUE"} // For example, 'Episode': {S: "The return"}; (only required if table has sort key). }, // Define expressions for the new or updated attributes UpdateExpression: "set NEW_ATTRIBUTE_NAME_1 = :t, NEW_ATTRIBUTE_NAME_2 = :s", // For example, "'set Title = :t, Subtitle = :s'" ExpressionAttributeValues: { ":t": "NEW_ATTRIBUTE_VALUE_1", // For example ':t' : 'NEW_TITLE' ":s": "NEW_ATTRIBUTE_VALUE_2", // For example ':s' : 'NEW_SUBTITLE' }, ReturnValues: "ALL_NEW" }; export const run = async () => { try { const data = await ddbClient.send(new UpdateItemCommand(params)); console.log(data); return data; } catch (err) { console.error(err); } }; run();

Geben Sie zum Ausführen des Beispiels Folgendes ein.

node ddb_putitem.js

Diesen Beispielcode finden Siehier GitHubaus.

Abrufen eines Elements

Erstellen eineslibsund erstellen Sie ein Modul Node.js mit dem DateinamenddbClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das DynamoDB-Clientobjekt erstellt wird. ErsetzenREGION with your AWSRegion.

// 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 GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ddb_getitem.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 eineDynamoDB-Serviceobjekt. Zum Identifizieren des abzurufenden Elements müssen Sie den Wert des Primärschlüssels für dieses Element in der Tabelle angeben. Die GetItemCommand-Methode gibt standardmäßig alle Attributwerte zurück, die für das Element definiert sind. Um nur eine Teilmenge aller möglichen Attributwerte abzurufen, geben Sie einen Projektionsausdruck an.

Erstellen Sie ein JSON-Objekt mit den erforderlichen Parametern für das Abrufen eines Elements, das in diesem Beispiel den Namen der Tabelle, den Namen und Wert des Schlüssels für das abzurufende Element und einen Projektionsausdruck beinhaltet, der das abzurufende Elementattribut identifiziert. Aufrufen Sie dieGetItemCommand-Methode des DynamoDB-Client-Serviceobjekts.

Anmerkung

ErsetzenTABLE_NAMEmit dem Namen der Tabelle zurück,KEY_NAMEmit dem Primärschlüssel der TabelleKEY_NAME_WERTmit dem Wert der Primärschlüsselzeile, die den Attributwert enthält, undATTRIBUTE_NAMEder Name der Attributspalte, die den Attributwert enthält.

Das folgende Codebeispiel ruft ein Element aus einer Tabelle mit einem Primärschlüssel ab, der nur aus einem Partitionsschlüssel besteht -KEY_NAME- und nicht sowohl von einem Partitions- als auch von einem Sortierschlüssel. Wenn die Tabelle einen Primärschlüssel hat, der aus einem Partitionsschlüssel und einem Sortierschlüssel besteht, müssen Sie auch den Namen und das Attribut des Sortierschlüssels angeben.

// Import required AWS SDK clients and commands for Node.js import { GetItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "TABLE_NAME", //TABLE_NAME Key: { KEY_NAME: { N: "KEY_VALUE" }, }, ProjectionExpression: "ATTRIBUTE_NAME", }; export const run = async () => { const data = await ddbClient.send(new GetItemCommand(params)); console.log("Success", data.Item); return data; }; run();

Geben Sie zum Ausführen des Beispiels Folgendes ein.

node ddb_getitem.js

Diesen Beispielcode finden Siehier GitHubaus.

Löschen eines Elements

Erstellen eineslibsund erstellen Sie ein Modul Node.js mit dem DateinamenddbClient.jsaus. Kopieren Sie den unten stehenden Code und fügen Sie ihn ein, wodurch das DynamoDB-Clientobjekt erstellt wird. ErsetzenREGION with your AWSRegion.

// 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 GitHubaus.

Erstellen Sie ein Node.js-Modul mit dem Dateinamen ddb_deleteitem.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 eineDynamoDB-Serviceobjekt. Erstellen Sie ein JSON-Objekt mit den erforderlichen Parametern zum Löschen eines Elements, das in diesem Beispiel den Namen der Tabelle und den Schlüsselnamen sowie den Wert für das zu löschende Element beinhaltet. Aufrufen Sie dieDeleteItemCommand-Methode des DynamoDB-Client-Serviceobjekts.

Anmerkung

ErsetzenTABLE_NAMEmit dem Namen der Tabelle zurück.

Anmerkung

Das folgende Codebeispiel unten löscht ein Element mit einem Primärschlüssel, der nur aus einem Partitionsschlüssel besteht -KEY_NAME- und nicht sowohl von einem Partitions- als auch von einem Sortierschlüssel. Wenn die Tabelle einen Primärschlüssel hat, der aus einem Partitionsschlüssel und einem Sortierschlüssel besteht, müssen Sie auch den Namen und das Attribut des Sortierschlüssels angeben.

// Import required AWS SDK clients and commands for Node.js import { DeleteItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "CUSTOMER_LIST_NEWEST", Key: { CUSTOMER_ID: { N: "1" }, }, }; export const run = async () => { try { const data = await ddbClient.send(new DeleteItemCommand(params)); console.log("Success, item deleted", data); return data; } catch (err) { console.log("Error", err); /*if (err && err.code === "ResourceNotFoundException") { console.log("Error: Table not found"); } else if (err && err.code === "ResourceInUseException") { console.log("Error: Table in use"); }*/ } }; run();

Um das Beispiel auszuführen, geben Sie Folgendes bei der Eingabeaufforderung ein.

node ddb_deleteitem.js

Diesen Beispielcode finden Siehier GitHubaus.