Solución:
Eche un vistazo a UpdateExpression en la API UpdateItem
Por ejemplo, dado un artículo con una lista:
{
"hashkey": {"S" : "my_key"},
"my_list" : {"L":
[{"N":"3"},{"N":"7"} ]
}
Puede actualizar la lista con un código como el siguiente:
UpdateItemRequest request = new UpdateItemRequest();
request.setTableName("myTableName");
request.setKey(Collections.singletonMap("hashkey",
new AttributeValue().withS("my_key")));
request.setUpdateExpression("list_append(:prepend_value, my_list)");
request.setExpressionAttributeValues(
Collections.singletonMap(":prepend_value",
new AttributeValue().withN("1"))
);
dynamodb.updateItem(request);`
También puede agregar a la lista invirtiendo el orden de los argumentos en la expresión list_append.
Una expresión como: SET user.address.zipcode = :zip
abordaría un elemento de mapa JSON combinado con valores de atributo de expresión {":zip" : {"N":"12345"}}
Basado en ejemplos de DynamoDB, esto también funciona (scala)
val updateItemSpec:UpdateItemSpec = new UpdateItemSpec()
.withPrimaryKey("hashkey", my_key)
.withUpdateExpression("set my_list = list_append(:prepend_value, my_list)")
.withValueMap(new ValueMap()
.withList(":prepend_value", "1"))
.withReturnValues(ReturnValue.UPDATED_NEW)
println("Updating the item...")
val outcome: UpdateItemOutcome = table.updateItem(updateItemSpec)
println("UpdateItem succeeded:n" + outcome.getItem.toJSONPretty)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)