2012-10-02 3 views
6

私はしばらくの間Googleに行ってきましたが、Spring Data MongoDBが一括保存をサポートしているかどうかは不明です。春データMongoDBのサポート一括挿入/保存

文書の集まりを原子として保存する必要があります。保存されているものも保存されていないものもあります。

誰でもこのリンクまたはサンプルコードを共有できますか?

+1

MongoDBにトランザクションの概念はありません。各操作はアトミックですが、一括保存はできません。 –

答えて

12

MongoDB Javaドライバを使用して保存すると、1つのドキュメントのみをMongoDBに渡すことができます。

挿入を実行すると、単一の要素を渡すことも、要素の配列を渡すこともできます。後者は「一括挿入」となります(つまり、クライアントによる1つの挿入コマンドにより複数のドキュメントがサーバーに挿入されます)。

しかし、MongoDBはトランザクションの概念をサポートしていないため、挿入が失敗した場合、以前に挿入されたドキュメントを削除またはロールバックする必要があることを示す方法はありません。

アトミック性のために、各文書の挿入は別個の操作であり、MongoDBをすべて挿入するか、または挿入しないようにするサポートされた方法はありません。

これは、アプリケーションがそれを達成するための他の方法があるかもしれません必要が何かある場合: - これらは、単一の親文書 (のサブ文書がある1つだけの親の「挿入」技術があるように、あなたのスキーマを変更ドキュメント) - トランザクションのセマンティクスをアプリケーションコードに書き込む - 2フェーズコミットトランザクションをネイティブにサポートするデータベースを使用する。