2017-01-28 6 views
1

Gibt es ist Art und Weise die folgenden einige Punkte mit updateItem zu erreichen: 1. Fügen Sie Attribute, wenn die Attribute nicht in DynamoDB existieren 2. Update-Attribute, wenn die Attribute in DynamoDB existieren 3. diejenigen hinterlassen Attribute als das, was sie sind, wenn die Attribute nicht in den Parametern enthalten sind. Hiernode.js AWS DynamoDB updateItem

ein Beispiel: Dies ist das Objekt in DynamoDB:

{ 
    id: "1234", 
    variable1: "hello", 
    variable2: "world" 
} 

Hier ist die Eingabe, die ich aktualisieren möchten:

{ 
    id: "1234", 
    variable1: "hello2", 
    variable23: "dog" // the variable name "variable23" could be anything 
} 

Hier ist die aktualisierte Element in der DynamoDB, dass ich möchte erreichen:

{ 
    id: "1234", 
    variable1: "hello2", 
    variable2: "world", 
    variable23: "dog" 
} 

Die „variable23“ jeder Variablenname sein könnte als Eingang.

Bitte helfen! Ich benutze node.js, ich schätze es sehr, wenn mir jemand Code zeigen kann, wie man das erreicht.

danke!

Antwort

3

Dies ist genau das, was AWS.DynamoDB.DocumentClients update Methode tut.

Es gibt bereits einen Beispielcode zur Verwendung der update Methode here für AWS SDK für JavaScript in Node.js.

Zum Beispiel:

'use strict'; 

const aws = require('aws-sdk'); 

// It is recommended that we instantiate AWS clients outside the scope of the handler 
// to take advantage of connection re-use. 
const docClient = new aws.DynamoDB.DocumentClient(); 

exports.handler = (event, context, callback) => { 
    const params = { 
     TableName: "MYTABLE", 
     Key: { 
      "id": "1" 
     }, 
     UpdateExpression: "set variable1 = :x, #MyVariable = :y", 
     ExpressionAttributeNames: { 
      "#MyVariable": "variable23" 
     }, 
     ExpressionAttributeValues: { 
      ":x": "hello2", 
      ":y": "dog" 
     } 
    }; 

    docClient.update(params, function(err, data) { 
     if (err) console.log(err); 
     else console.log(data); 
    }); 
}; 
+0

Können Sie mir einige Code auf meinem Beispiel? Ich habe dieses Beispiel gesehen und bin immer noch verwirrt. Wenn ich 30 Attribute habe, muss ich dann Ausdrücke für 30 Attribute schreiben? Was ist, wenn ich neue Attribute habe? Vielen Dank! – Pano

+0

Sie müssen die Attribute angeben, die Sie nur aktualisieren möchten. Wenn Sie also 30 Attribute aktualisieren müssen, müssen Sie den Aktualisierungsausdruck für alle 30 Attribute schreiben. Sehen Sie meine aktualisierte Antwort für das Codebeispiel. –

+0

Was ist, wenn Variable23 zu Variable67 wird? Wie soll ich mit diesem Teil umgehen? Ich weiß nicht einmal was die Eingabe ist, wie man das Update macht? – Pano

Verwandte Themen