2012-03-30 6 views
3

Wie kann man einen Attributwert in DynamoDB-Tabelle auf "" aktualisieren?Aktualisieren Sie einen Attributwert auf leer ("") in dynamodb

Eine Option besteht darin, das Element in ein Dokument zu bringen und dann alle Attribute in ein neues Dokument zu kopieren, mit Ausnahme des Attributs, dessen Wert auf "" aktualisiert werden soll der Hash-Schlüssel existiert) und da ich das Attribut nicht mehr habe, würde es gelöscht werden.

Hinweis: Ich hätte einfach das Element löschen können, aber meine Anforderung besteht darin, mehr als einen Attributwert zu aktualisieren, und einer davon ist leer.

Bitte schlagen Sie mir einen besseren Ansatz vor, wenn überhaupt.

Vielen Dank im Voraus.

Antwort

4

DynamoDB ermöglicht das Update in einer vorhandenen Zeile mit dem UpdateItemRequest (Java SDK).

Wie das folgende Beispiel:

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

Vielen Dank, habe ich auch, dass herausgefunden, wenn ich Document Modell verwenden und einen Attributwert NULL oder "" sein, dann muss das AWS SDK den Löschvorgang für mich durchführen. –

0

Sie auch so etwas tun kann

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