在DynamoDB中更新操作

时间:2016-05-24 16:58:21

标签: amazon-dynamodb

以下是我们的数据结构设计中提出的问题。目前,我们有以下数据:

class {
  private String id;
  private Map<String, Object> map;
  ...
}

我们将有一项操作经常向地图添加新条目。我想知道是否需要首先从DynamoDB获取数据,向地图添加新条目并使用修改后的数据进行数据库更新? (这就是Mongo更新的工作原理。)如果没有,那么数据结构设计并不好。

1 个答案:

答案 0 :(得分:0)

是的,您需要先从DynamoDB获取数据,然后添加一个新条目以映射并保存该对象。

如果对象的类型为List,则可以将值附加到现有列表中。

List<String> nameList = new ArrayList<>();
nameList.add("1");
UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey("Id", testId).withReturnValues(ReturnValue.ALL_NEW).withUpdateExpression("set #Names = list_append (#Names, :val1)").withNameMap(new NameMap().with("#Names", "Names"))
            .withValueMap(new ValueMap().withList(":val1", nameList));
UpdateItemOutcome outcome = table.updateItem(updateItemSpec);