2016-05-24 4 views
0

Вот вопрос, поднятый во время проектирования структуры данных. В настоящее время у нас есть следующие данные:Операция обновления в DynamoDB

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

У нас будет операция по добавлению новых записей на карту часто. Мне интересно, нужно ли сначала получать данные из DynamoDB, добавлять новые записи на карту и делать обновление БД с измененными данными или нет? (Так работает Mongo update.) Если нет, структура структуры данных не очень хороша.

ответ

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); 
+0

Благодарим за информацию. Нам необходимо перепроектировать структуру данных. – TeeKai

Смежные вопросы