2012-10-02 15 views
6

Bir süredir google'a girdim, Spring Data MongoDB'nin toplu kaydetmeyi destekleyip desteklemediğinden emin değilim. Bir toplama belgesini ya kaydedilmiş ya da hiç kaydedilmemiş atomik olarak atomik olarak kaydetmem gerekiyor.Spring Data MongoDB, toplu veri ekleme/kaydetme desteği

Herkes bunun için bir bağlantı veya örnek kod paylaşabilir mi?

+1

MongoDB içinde işlemlerin hiçbir kavram yoktur. Her işlem atomiktir ancak toplu kaydetme yapılamaz. –

cevap

12

MongoDB Java sürücüsü aracılığıyla bir tasarruf yaptığınızda, yalnızca tek bir belgeyi MongoDB'ye geçirebilirsiniz.

Ekleme yaptığınızda, tek bir öğe geçirebilir veya bir dizi öğeyi geçirebilirsiniz. İkincisi, "bulk insert" ile sonuçlanacak şeydir (yani, istemci tarafından yapılan tek insert komutu, sunucuya birden fazla belgenin eklenmesini sağlayacaktır). Ancak, MongoDB bir işlem kavramını desteklemediğinden, eklerden biri başarısız olursa, önceden yerleştirilen belgelerin silinmesi veya geri alınması gerektiğini belirtmenin bir yolu yoktur.

Atomiklik amaçları için, her belge eki ayrı bir işlemdir ve MongoDB'yi ya tümünü ya da hiçbirini ekleme yapmak için desteklenen bir yol yoktur.

Bu uygulama bunu başarmak için başka yollar olabilir gerektiren bir şey ise: - bunlar tek bir üst belgenin (bir alt belgeler şunlardır sonra tek ebeveynin "insert" teknik olduğunu böylece şemasını değiştirmek belge) - işlem semantiklerini uygulama kodunuza yazın - iki aşamalı taahhüt işlemlerini doğal olarak destekleyen bir veritabanı kullanın.

İlgili konular