Новый API AWS DynamoDB document позволяет использовать два новых типа данных, которые непосредственно соответствуют базовому представлению JSON: Map (aka JSON object) и List (aka JSON array).
Однако я не могу найти способ обновлять атрибуты этих типов данных без их полной перезаписи. Напротив, атрибут Number может быть обновлен путем добавления другого номера, поэтому в Java вы можете сделать что-то вроде:
new AttributeUpdate("Some numeric attribute").addNumeric(17);
Аналогично вы можете addElements присвоить атрибуту типа данных Set. (В старом API вы должны использовать AttributeAction.ADD для обеих целей.)
Но для карты или списка кажется, что вы должны обновить предыдущее значение локально, а затем PUT вместо этого значения, например, в Java:
List<String> list = item.getList("Some list attribute");
list.add("new element");
new AttributeUpdate("Some list attribute").put(list);
Это гораздо менее читаемо и при некоторых обстоятельствах гораздо менее эффективно.
Итак, мои вопросы:
-
Есть ли способ обновить атрибут типа карты или списка, не перезаписывая предыдущее значение? Например, чтобы добавить элемент в список или поместить элемент на карту?
-
Как вы реализуете его с помощью API Java?
-
Знаете ли вы о планах поддержать это в будущем?