Pergunta

Eu tenho sido o Google por um tempo, não tenho certeza se a Spring Data MongoDB suporta para salvar em massa.

Eu preciso salvar uma coleção de documentos em Mongo como atômico, todos salvos ou nenhum salvo.

Alguém pode compartilhar um link ou algum código de amostra para isso?

Foi útil?

Solução

Quando você fizer um driver Java Salvar através do MongoDB, você só pode passar um único documento para MongoDB.

Quando você fizer uma inserção, você pode passar um único elemento ou você pode passar uma matriz de elementos. O último é o que resultará em uma "inserção em massa" (isto é, o único comando de inserção por cliente resultará em vários documentos inseridos no servidor).

No entanto, como o MongoDB não suporta uma noção de transação, se uma das inserções falhar, não há como indicar que os documentos inseridos anteriormente devem ser excluídos ou revertidos.

Para os propósitos da atomicidade, cada inserção de documentos é uma operação separada e não há maneira suportada de fazer o MongoDB Inserir tudo ou nenhum.

Se isso é algo que sua inscrição exige, pode haver outras maneiras de alcançá-lo: - Altere seu esquema para que estes são subdocumentos de um único documento pai (Então, há tecnicamente apenas uma "inserção" do documento pai) - Escreva a semântica de transação em seu código de aplicativo - Use um banco de dados que suporta nativamente as transações de confirmação de duas fases.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top