Haz todo lo posible por comprender el código de forma correcta previamente a aplicarlo a tu trabajo si ttienes algo que aportar puedes decirlo en los comentarios.
Solución:
Lo que no mencioné en mi pregunta fue que quería el count
subir para eventos posteriores sin modificar el created_at
. Mi UpdateInput de trabajo final se ve así:
Key:
id:
S: "some_unique_id"
,
TableName: "test",
ExpressionAttributeNames:
#t: "created_at",
#c: "count"
,
ExpressionAttributeValues:
:t:
S: "2015-09-26T15:58:57+12:00"
,
:c:
N: "1"
,
UpdateExpression: "SET #t = if_not_exists(#t, :t) ADD #c :c"
Puedes hacer esto con UpdateItem
API y la UpdateExpression
debido a su caso de uso. Ya que count
será un Number
escribe aquí, puedes usar el SET
o ADD
expresiones:
la documentación para ADD
te dice que puedes usarlo para Number
tipos (énfasis mío):
ADD – Agrega el valor especificado al elemento, si el attribute no existe ya. Si el attribute existe, entonces el comportamiento de ADD depende del tipo de datos del attribute:
- Si el existente attribute es un número y si Valor también es un número, entonces Valor se suma matemáticamente a la existente attribute. Si Valor es un número negativo, entonces se resta del existente attribute.
Si usa AGREGAR para incrementar o disminuir un valor numérico para un elemento que no existe antes de la actualización, DynamoDB usa 0 como valor inicial. De manera similar, si usa AGREGAR para un artículo existente para incrementar o disminuir un attribute valor que no existe antes de la actualización, DynamoDB utiliza 0 como valor inicial. Por ejemplo, suponga que el elemento que desea actualizar no tiene un attribute itemcount nombrado, pero usted decide AGREGAR el número 3 a este attribute de todas formas. DynamoDB creará el número de elementos attribute, establezca su valor inicial en 0 y finalmente agréguele 3. El resultado será un nuevo número de elementos. attribute en el artículo, con un valor de 3.
Para su ejemplo, podría tener su UpdateExpression
ser ADD #c :n
donde :n
tiene un ExpressionAttributeValue
de El Number
tipo, 1
es el valor y #c
tiene el ExpressionAttributeName
sustitución de count
. Necesitas usar un marcador de posición para count
porque es una palabra reservada.
Ver más ejemplos en el Modificación de elementos y atributos con expresiones de actualización
Valoraciones y reseñas
Recuerda comunicar esta crónica si si solucionó tu problema.