Dynamo DB文档API允许使用json有效负载进行放置操作
Item item = Item.fromJSON(payload);
table.putItem(item);
但是,我找不到使用Json有效负载执行updateItem的类似方法。
是否有Dynamo DB支持?
答案 0 :(得分:2)
以下是关于如何在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)=>{});
答案 1 :(得分:1)
我最近一直在努力使用地图。
UpdateItemOutcome updateItemOutcome = table.updateItem(
new UpdateItemSpec()
.withPrimaryKey("id", "yourId")
.withUpdateExpression("SET document.field = :field")
.withValueMap(new ValueMap()
.withMap(":field", "map of key value pairs that will get serialized to json")));
答案 2 :(得分:0)
UpdateItemSpec当前不接受Item作为输入 - 您必须首先解析json内容(可能是通过Item.fromJSON),然后使用AttributeUpdate或UpdateExpression指定每个单独字段的更新操作( SET,ADD等)
以下是使用UpdateExpression更新项目http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/JavaDocumentAPIItemCRUD.html#JavaDocumentAPIItemUpdate
的文档