Pregunta

He sido Google por un tiempo, no estoy seguro de si los datos de resorte MongoDB son compatibles con el guardado a granel.

Necesito guardar una colección de documentos en Mongo como Atomic, ya sea todo guardado o nada guardado.

¿Puede alguien compartir un enlace o algún código de muestra para esto?

¿Fue útil?

Solución

Cuando hace un ahorro a través de Mongodb Java Driver, solo puede pasar un solo documento a MongoDB.

Cuando hace un inserto, puede pasar un solo elemento o puede pasar una matriz de elementos. Este último es lo que resultará en un "inserto a granel" (I.E. El comando de inserción único por parte del cliente dará lugar a que se insertarán varios documentos en el servidor).

Sin embargo, dado que MongOdb no admite una noción de transacción, si uno de los insertos falla, no hay forma de indicar que los documentos insertados anteriormente deben eliminarse o enrollarse hacia atrás.

Para los fines de la atomicidad, cada inserto de documentos es una operación separada y no hay una forma compatible de hacer que Mongodb inserte todo o ninguno.

Si esto es algo que su solicitud requiere que haya otras formas de lograrlo: - Cambie su esquema para que estos sean subdocumentos de un solo documento padre (Luego, hay técnicamente solo un "inserto" del documento principal) - Escriba la semántica de la transacción en su código de solicitud - Use una base de datos que admite de forma nativa las transacciones de confirmación de dos fases.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top