Обновите значение атрибута до пустого ("") в DynamodB - PullRequest
4 голосов
/ 30 марта 2012

Как можно обновить значение атрибута в таблице DynamoDB до ""?

Один вариант - получить элемент в документ, а затем скопировать все атрибуты в новый документ, кроме атрибута, значение которого равнообновиться до "", а затем вызвать putitem, это в основном заменит весь элемент (так как ключ хеша существует), и поскольку у меня больше нет атрибута, он будет удален.

Примечание: я мог бы иметьпросто сделали удаление элемента, но мое требование - обновить более одного значения атрибута, и одно из них пустое.

Пожалуйста, предложите мне лучший подход, если таковой имеется.

Заранее спасибо.

Ответы [ 2 ]

6 голосов
/ 31 марта 2012

DynamoDB позволяет обновлять существующую строку, используя UpdateItemRequest (Java SDK).

Как в следующем примере:

Map<String, AttributeValueUpdate> updateItems = new HashMap<String, AttributeValueUpdate>();

updateItems.put("columnToRemove", new AttributeValueUpdate()
                                      .withAction(AttributeAction.DELETE));

updateItems.put("columnToRemove2", new AttributeValueUpdate()
                                      .withAction(AttributeAction.DELETE));

UpdateItemRequest updateItemRequest = new UpdateItemRequest()
                                          .withTableName(tableName)
                                          .withKey(itemKey)
                                          .withAttributeUpdates(updateItems);

UpdateItemResult result = client.updateItem(updateItemRequest);
0 голосов
/ 14 сентября 2015

Вы также можете сделать что-то вроде этого

Table table = dynamoDB.getTable("myTable");
table.updateItem(new PrimaryKey("<MY HASH KEY NAME>", <MY HASH VALUE>), new AttributeUpdate("columnToRemove").delete());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...