sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Mover documentos entre colecciones es una buena manera de representar cambios de estado en MongoDB?

Sí, esto es por diseño. MongoDB explícitamente no proporciona uniones o transacciones. Quitar + Guardar es una forma de transacción.

Realmente tiene dos opciones de baja complejidad aquí, ambas implican findAndModify .

Opción #1:una sola colección

Según su descripción, básicamente está creando una cola con algunas funciones adicionales. Si aprovecha una sola colección, entonces usa findAndModify para actualizar el estado de cada elemento a medida que se procesa.

Desafortunadamente, eso significa que perderá esto:... que la colección "entrante" se puede mantener muy pequeña y rápida de esta manera .

Opción #2:dos colecciones

La otra opción es básicamente una confirmación de dos fases, aprovechando findAndModify .

Eche un vistazo a los documentos de este aquí .

Una vez que un elemento se procesa en A establece un campo para marcarlo para su eliminación. Luego copia ese elemento a B . Una vez copiado a B luego puede eliminar el elemento de A .