UpdateItemで次のいくつかのポイントを達成する方法はありますか:1. DynamoDBに属性が存在しない場合は属性を追加します2. DynamoDBに属性が存在する場合は属性を更新します3.属性が含まれていない場合は属性をそのままにしますパラメータ。
次に例を示します。これは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を使用していますが、これを実現する方法を誰かにコードを教えてもらえれば本当に感謝しています。
ありがとう!
これは、AWS.DynamoDB.DocumentClientのupdate
メソッドが行うこととまったく同じです。
Node.jsのAWS SDK for JavaScriptでupdate
メソッド here を使用する方法のサンプルコードはすでにあります。
例えば:
'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);
});
};