JSON バッチ処理

バッチ処理 とは、各 JSON ドキュメントを個別に送信する代わりに、複数の JSON ドキュメントを累積し、それらをまとめて JSON ストアに送信することです。 JSON API は、バッチ処理を実行するプログラマチックな方法を提供します。 バッチ処理の主な利点は、パフォーマンスの向上です。

以下のタイプのバッチ処理がサポートされています。
同種バッチ処理
バッチに含まれる JSON ドキュメントが同じコレクションに属し、すべてのドキュメントに同じ操作が適用される場合に行われます。
異種バッチ処理
バッチに含まれる JSON ドキュメントが異なるコレクションに属する、またはドキュメントに異なる操作が適用される場合に行われます。

バッチの開始点にマークを付けるには、startBatch() メソッドを使用します。 ドキュメントに対する挿入、更新、削除、または保存操作をトリガーするには、endBatch() メソッドを使用します。 バッチ内の 1 つの操作が失敗した場合、そのバッチ内の次の操作で処理が続行されます。

例 1:
以下の例では、同種バッチ処理を使用して、1 つのコレクションに 3 つのドキュメントを挿入します。
DBCollection batch = db.getCollection("batch");

BasicDBObject dbObj1 = new BasicDBObject("name", "Joe1");
dbObj1.put("_id", 1);

BasicDBObject dbObj2 = new BasicDBObject("name", "Joe2");
dbObj2.put("_id", 2);

BasicDBObject dbObj3 = new BasicDBObject("name", "Joe3");
dbObj3.put("_id", 3);

db.startBatch();

batch.insert(dbObj1);
batch.insert(dbObj2);
batch.insert(dbObj3);

db.endBatch(); 
例 2:
以下の例では、異種バッチ処理を使用して、コレクション batch1 に 3 つのドキュメントを、コレクション batch2 に 2 つのドキュメントを挿入します。
// Get collection batch1
DBCollection batch1 = db.getCollection("batch1");

// Create three documents to insert in collection batch1
BasicDBObject dbObj1 = new BasicDBObject("name", "Joe1");
dbObj1.put("_id", 1);

BasicDBObject dbObj2 = new BasicDBObject("name", "Joe2");
dbObj2.put("_id", 2);

BasicDBObject dbObj3 = new BasicDBObject("name", "Joe3");
dbObj3.put("_id", 3);

// Get collection batch2
DBCollection batch2 = _db.getCollection("batch2"); 

// Create two documents to insert in collection batch2
BasicDBObject dbObj4 = new BasicDBObject("name", "Joe4");
dbObj4.put("_id", 4);

BasicDBObject dbObj5 = new BasicDBObject("name", "Joe5");
dbObj5.put("_id", 5);

db.startBatch();

// Insert three documents into collection batch1

batch1.insert(dbObj1);
batch1.insert(dbObj2);
batch1.insert(dbObj3);

// Insert two documents into collection batch2

batch2.insert(dbObj4);
batch2.insert(dbObj5);

db.endBatch();