2012-03-30 28 views
3

如何將DynamoDB表中的屬性值更新爲「」?在dynamodb中將屬性值更新爲空(「」)

一個選項是將項目獲取到文檔中,然後將所有屬性複製到一個新文檔中,除了其值將被更新爲「」的屬性,然後調用putitem,這將基本上替換整個項目(如哈希鍵存在),因爲我沒有該屬性了,它將被刪除。

注意:我可以簡單地完成刪除項目,但我的要求是更新多個屬性值,其中一個是空白的。

請給我一個更好的方法,如果有的話。

在此先感謝。

回答

4

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

非常感謝,我也想通了,如果我使用文檔模型,並設置屬性值爲NULL或「」,那麼AWS SDK將爲我執行刪除操作。 – 2012-03-31 10:11:52

0

你也可以做這樣的事情

Table table = dynamoDB.getTable("myTable"); 
table.updateItem(new PrimaryKey("<MY HASH KEY NAME>", <MY HASH VALUE>), new AttributeUpdate("columnToRemove").delete());