如何將DynamoDB表中的屬性值更新爲「」?在dynamodb中將屬性值更新爲空(「」)
一個選項是將項目獲取到文檔中,然後將所有屬性複製到一個新文檔中,除了其值將被更新爲「」的屬性,然後調用putitem,這將基本上替換整個項目(如哈希鍵存在),因爲我沒有該屬性了,它將被刪除。
注意:我可以簡單地完成刪除項目,但我的要求是更新多個屬性值,其中一個是空白的。
請給我一個更好的方法,如果有的話。
在此先感謝。
如何將DynamoDB表中的屬性值更新爲「」?在dynamodb中將屬性值更新爲空(「」)
一個選項是將項目獲取到文檔中,然後將所有屬性複製到一個新文檔中,除了其值將被更新爲「」的屬性,然後調用putitem,這將基本上替換整個項目(如哈希鍵存在),因爲我沒有該屬性了,它將被刪除。
注意:我可以簡單地完成刪除項目,但我的要求是更新多個屬性值,其中一個是空白的。
請給我一個更好的方法,如果有的話。
在此先感謝。
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);
你也可以做這樣的事情
Table table = dynamoDB.getTable("myTable");
table.updateItem(new PrimaryKey("<MY HASH KEY NAME>", <MY HASH VALUE>), new AttributeUpdate("columnToRemove").delete());
非常感謝,我也想通了,如果我使用文檔模型,並設置屬性值爲NULL或「」,那麼AWS SDK將爲我執行刪除操作。 – 2012-03-31 10:11:52