elemento de actualización condicional de dynamodb (cliente)
Me refiero a esta muestra de elemento de actualización: https://stackoverflow.com/a/62030403/13967222.
for key, val in body.items():
update_expression.append(f" {key} = :{key},")
update_values[f":{key}"] = val
return "".join(update_expression)[:-1], update_values
Estoy tratando de lograr lo mismo pero usando el cliente dynamodb.
¿Hay alguna forma de verificar si el valor está disponible usando el cliente dynamodb?
Respuestas
Puede verificar si el atributo clave ya existe pasando el ConditionExpression
parámetro en la solicitud de esa manera (según la respuesta en la respuesta a la que se refiere):
table.update_item(
Key={'uuid':str(uuid)},
UpdateExpression=a,
ExpressionAttributeValues=dict(v),
ConditionExpression="attribute_not_exists(uuid)"
)
Su escritura se ejecutará solo cuando ConditionExpression
regrese True
. attribute_not_exists
es una función de DynamoDb que regresa True
cuando el atributo especificado no existe. También hay una attribute_exists
función para lograr el resultado opuesto. Más sobre las funciones de condición de DDB en la documentación oficial
Además, puede consultar el ejemplo de Python de escrituras condicionales en documentos aquí