How to perform an updateItem operation with a JSON payload on a Dynamo DB table
amazon-dynamodb, java, json
Solution
Here is a snippet as to how you would do it in Javascript.
let updateExpression = 'SET ';
let expressionAttributeValues = {};
const keys = Object.keys(payload);
for (const key of keys) {
updateExpression += `${key}=:${key},`;
expressionAttributeValues[`:${key}`] = payload[key];
}
updateExpression=updateExpression.slice(0,-1);
let params = {
TableName : 'your_table_name',
Key: {
id: id
},
UpdateExpression : updateExpression,
ExpressionAttributeValues : expressionAttributeValues,
ReturnValues: "ALL_NEW"
}
db.update(params,(err, result)=>{});
Problem
The Dynamo DB document API allows put operation using a json payload ``` Item item = Item.fromJSON(payload); table.putItem(item); ``` However I couldn't find a similar way for performing an updateItem with a Json payload. Is there a Dynamo DB support for that?