Question

J'ai été google depuis un moment, je ne sais pas si les données de printemps MongoDB prend en charge la sauvegarde en vrac.

J'ai besoin d'enregistrer une collection de documents en Mongo sous forme atomique, que toutes sauvegardées ou aucune sauvegardées.

Quelqu'un peut-il partager un lien ou un exemple de code pour cela?

Était-ce utile?

La solution

Lorsque vous effectuez une sauvegarde via le pilote Java Mongodb, vous ne pouvez transmettre qu'un seul document sur MongoDB.

Lorsque vous effectuez un insert, vous pouvez passer un seul élément ou vous pouvez transmettre un éventail d'éléments. Ce dernier est ce qui aboutira à un "insert en vrac" (c'est-à-dire une commande d'insertion unique par client entraînera des documents multiples insérés sur le serveur).

Cependant, étant donné que MongoDB ne prend pas en charge une notion de transaction, si l'un des inserts échoue, il n'existe aucun moyen d'indiquer que les documents précédemment insérés doivent être supprimés ou laminés.

Aux fins de l'atomicité, chaque insertion de document est une opération distincte et il n'y a pas de moyen pris en charge pour que Mongodb soit insérer tout ou aucun.

Si c'est quelque chose que votre demande nécessite qu'il peut y avoir d'autres moyens de le réaliser: - changer votre schéma afin que ce soient sous-documents d'un document parent unique (Ensuite, il n'y a techniquement qu'un seul "insert" du document parent) - Écrivez la sémantique de transaction dans votre code d'application - Utilisez une base de données qui prend en charge de manière native deux transactions de validation de phase.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top