2012-03-03 21 views
6

Estoy buscando la forma atómica más eficiente de agregar un elemento a una matriz dentro de un objeto DynamoDB. En este momento, la única forma en que veo agregar atómicamente algo a una matriz es usar un enfoque versionado: buscar el campo para actualizar, agregar/eliminar el valor y hacer una actualización condicional con un campo de "versión" en la fila. Pero esto no me parece súper eficiente. ¿Hay alguna forma mejor de hacerlo?Agregar/quitar elemento a la matriz en Amazon DynamoDB

Respuesta

11

La operación UpdateItem tiene acciones Agregar y Eliminar. Si se usa en conjuntos, las acciones agregarán/eliminarán los valores especificados del conjunto. Si se usa en un número, la acción Agregar aumentará o disminuirá atómicamente el número.

Es importante recordar que DynamoDB en realidad admite conjuntos, no matrices. Debido a esto, agregar o quitar valores es intrínsecamente atómico.

+0

Tenga en cuenta, por supuesto, que los conjuntos y las matrices son semánticamente diferentes, por lo que siempre que el orden no sea importante o se puedan reconstruir, los conjuntos definitivamente son el camino a seguir – tddmonkey

Cuestiones relacionadas