2017-01-28 9 views
1

はupdateItemと、次のいくつかのポイントを達成するための方法があるです:属性は2.更新属性がDynamoDBの に存在する場合3.それらを残す属性DynamoDBの に存在しない場合 1.属性を追加します。属性がパラメータに含まれていない場合の属性を示します。ここでNode.jsのAWS DynamoDBのupdateItem

は一例です: これは、DynamoDBの中のオブジェクトである:ここで

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

は私が更新したい入力されている。ここで

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

は、更新された項目は、ということDynamoDBのです私は達成したい:

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

"variable23"は任意の変数名にすることができます入力。

助けてください!私はnode.jsを使用しています。誰かに私にこれを達成するためのいくつかのコードを表示できるかどうか本当に感謝します。

ありがとうございました!

答えて

3

これはまさにAWS.DynamoDB.DocumentClientのupdateメソッドの機能です。

updateメソッドhereをNode.jsのJavaScript用AWS SDKに使用する方法のサンプルコードが既に用意されています。例えば

'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

あなたは私には私の例のいくつかのコードを表示することができますか?私はその例を見て、まだ混乱しています。 30個の属性がある場合、30個の属性の式を記述する必要がありますか?新しい属性があればどうなりますか?ありがとう! – Pano

+0

更新したい属性だけを指定する必要があります。したがって、30個の属性を更新する必要がある場合は、30個の属性すべてに対して更新式を記述する必要があります。コードサンプルについては、私の更新答えを見てください。 –

+0

variable23がvariable67になるとどうなりますか?その部分はどのように処理すればよいですか?私は入力が何であるか、更新の仕方を知らない – Pano

関連する問題