以下是我们的数据结构设计中提出的问题。目前,我们有以下数据:
class {
private String id;
private Map<String, Object> map;
...
}
我们将有一项操作经常向地图添加新条目。我想知道是否需要首先从DynamoDB获取数据,向地图添加新条目并使用修改后的数据进行数据库更新? (这就是Mongo更新的工作原理。)如果没有,那么数据结构设计并不好。
答案 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);