Domanda

Sono stato Google per un po ', non sono sicuro se i dati a molla MONGODB supportano per salvare la rinfusa.

Ho bisogno di salvare una raccolta di documenti in Mongo come Atomic, tutti salvati o nessuno salvato.

Qualcuno può condividere un collegamento o un codice di esempio per questo?

È stato utile?

Soluzione

Quando si esegue un salvataggio tramite il driver Java MONGODB è possibile passare solo un singolo documento a MongoDB.

Quando si esegue un inserimento, è possibile passare un singolo elemento o puoi passare una serie di elementi. Quest'ultimo è ciò che comporterà un "inserimento di massa" (cioè il comando di inserimento singolo da parte del client comporterà più documenti inseriti sul server).

Tuttavia, poiché MongoDB non supporta una nozione di transazione, se uno degli inserti non riesce non è necessario indicare che i documenti inseriti in precedenza devono essere cancellati o tornare indietro.

Ai fini dell'atomicità, ciascun inserimento di documenti è un'operazione separata e non vi è alcun modo supportato per rendere il mongolodb inserire tutto o nessuno.

Se questo è qualcosa che la tua applicazione richiede che ci possano essere altri modi per raggiungerlo: - Cambia il tuo schema in modo che questi siano subdocumenti di un singolo documento genitore (Quindi c'è tecnicamente solo un "inserimento" del documento genitore) - Scrivi la semantica delle transazioni nel tuo codice dell'applicazione - Utilizzare un database che supporta nativamente le transazioni di commit di fase.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top