¿Es posible combinar si no existe y agregar una lista en el elemento actualizar
Estoy intentando usar la funcionalidad update_item
para DynamoDB en boto3.
Estoy luchando en este momento para actualizar las listas de elementos. Me gustaría crear una nueva lista si la lista aún no existe y, de lo contrario, agregarla a la lista existente.
Mediante un UpdateExpression
de la forma SET my_list = list_append(my_list, :my_value)
devuelve un error "La expresión se refiere a un atributo que no existe en el elemento" si la lista no existe todavía.
Cualquier idea de cómo tendría que modificar mi UpdateExpression
?
Gracias y saludos cordiales, Fabian
2 answers
Puede usar list_append(if_not_exists())
construcción.
Expresión de actualización:
'SET my_list2 = list_append(if_not_exists(my_list2, :empty_list), :my_value)'
ExpressionAttributeValues:
{ ":my_value":[{"S":"test"}], ":empty_list":[] }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-25 20:28:44
Una alternativa a la solución de Boris podría ser usar set en lugar de list datatype y usar la palabra clave ADD, hace exactamente lo que quieres.
Con Add, la expresión de actualización se convierte en: ADD setName :s
Y los valores de los atributos de expresión pueden ser como: {":s": {"SS":["First", "Second"]}}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-22 11:26:52