Массовая вставка в MongoDB – MongoDB insertMany

Мы сегодня рассмотрим массовую вставку в MongoDB. В MongoDB можно вставлять сразу несколько документов с использованием операции массовой вставки, при которой массив документов передается методу вставки в качестве параметра.

Массовая вставка в MongoDB

Массовая вставка в MongoDB выполняет упорядоченную вставку по умолчанию. Если происходит ошибка вставки в определенной точке, вставка не происходит для оставшихся документов. Давайте рассмотрим пример вставки нескольких документов с использованием массовой вставки MongoDB через командную строку.

Вставка в MongoDB нескольких документов


> db.car.insert(
... [
... { _id:1,name:"Audi",color:"Red",cno:"H101",mfdcountry:"Germany",speed:75 },
... { _id:2,name:"Swift",color:"Black",cno:"H102",mfdcountry:"Italy",speed:60 },

... { _id:3,name:"Maruthi800",color:"Blue",cno:"H103",mfdcountry:"India",speed:70 },
... { _id:4,name:"Polo",color:"White",cno:"H104",mfdcountry:"Japan",speed:65 },
... { _id:5,name:"Volkswagen",color:"JetBlue",cno:"H105",mfdcountry:"Rome",speed:80 }       
...  ]
...  )
BulkWriteResult({
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 5,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})

Эта операция вставила пять документов. Если пользователь не указывает поле id в запросе, MongoDB автоматически создает его. Столбец “nInserted” сообщает пользователю количество вставленных документов. Чтобы просмотреть вставленные документы, выполните следующий запрос, как показано ниже.


> db.car.find()
{ "_id" : 1, "name" : "Audi", "color" : "Red", "cno" : "H101", "mfdcountry" : "Germany", "speed" : 75 }
{ "_id" : 2, "name" : "Swift", "color" : "Black", "cno" : "H102", "mfdcountry" : "Italy", "speed" : 60 }
{ "_id" : 3, "name" : "Maruthi800", "color" : "Blue", "cno" : "H103", "mfdcountry" : "India", "speed" : 70 }
{ "_id" : 4, "name" : "Polo", "color" : "White", "cno" : "H104", "mfdcountry" : "Japan", "speed" : 65 }
{ "_id" : 5, "name" : "Volkswagen", "color" : "JetBlue", "cno" : "H105", "mfdcountry" : "Rome", "speed" : 80 }
> 

Узнайте больше о операциях поиска в MongoDB и вставки в MongoDB. При вставке не обязательно указывать все поля в запросе. Теперь давайте посмотрим, как работает вставка, когда некоторые поля не указаны.

Вставка документов MongoDB с указанием некоторых полей


> db.car.insert(
... [
... { _id:6,name:"HondaCity",color:"Grey",cno:"H106",mfdcountry:"Sweden",speed:45 },
... {name:"Santro",color:"Pale Blue",cno:"H107",mfdcountry:"Denmark",speed:55 },
... { _id:8,name:"Zen",speed:54 }
... ]
... )
BulkWriteResult({
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 3,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})
> 

В этом примере для второго документа поле id не указано пользователем, а для третьего документа в запросе указаны только поля id, name и speed. Вставка выполняется успешно, даже если некоторые поля отсутствуют во втором и третьем документах. Колонка nInserted указывает, что было вставлено три документа. Вызовите метод find и проверьте вставленные документы.


> db.car.find()
{ "_id" : 1, "name" : "Audi", "color" : "Red", "cno" : "H101", "mfdcountry" : "Germany", "speed" : 75 }
{ "_id" : 2, "name" : "Swift", "color" : "Black", "cno" : "H102", "mfdcountry" : "Italy", "speed" : 60 }
{ "_id" : 3, "name" : "Maruthi800", "color" : "Blue", "cno" : "H103", "mfdcountry" : "India", "speed" : 70 }
{ "_id" : 4, "name" : "Polo", "color" : "White", "cno" : "H104", "mfdcountry" : "Japan", "speed" : 65 }
{ "_id" : 5, "name" : "Volkswagen", "color" : "JetBlue", "cno" : "H105", "mfdcountry" : "Rome", "speed" : 80 }
{ "_id" : 6, "name" : "HondaCity", "color" : "Grey", "cno" : "H106", "mfdcountry" : "Sweden", "speed" : 45 }
{ "_id" : ObjectId("54885b8e61307aec89441a0b"), "name" : "Santro", "color" : "Pale Blue", "cno" : "H107", "mfdcountry" : "Denmark", "speed" : 55 }
{ "_id" : 8, "name" : "Zen", "speed" : 54 }
> 

Обратите внимание, что id автоматически генерируется MongoDB для автомобиля “Santro”. Для id 8 вставлены только поля name и speed.

Вставка неупорядоченных документов

При выполнении неупорядоченной вставки, если происходит ошибка, MongoDB продолжает вставку оставшихся документов в массиве. Например;


> db.car.insert(
... [
... { _id:9,name:"SwiftDezire",color:"Maroon",cno:"H108",mfdcountry:"New York",speed:40 },
... { name:"Punto",color:"Wine Red",cno:"H109",mfdcountry:"Paris",speed:45 },
...  ],
... { ordered: false }
... )
BulkWriteResult({
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 2,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})
> 

В запросе на вставку указано ordered false, что указывает, что это неупорядоченная коллекция. Выполните db.car.find()


{ "_id" : 1, "name" : "Audi", "color" : "Red", "cno" : "H101", "mfdcountry" : "Germany", "speed" : 75 }
{ "_id" : 2, "name" : "Swift", "color" : "Black", "cno" : "H102", "mfdcountry" : "Italy", "speed" : 60 }
{ "_id" : 3, "name" : "Maruthi800", "color" : "Blue", "cno" : "H103", "mfdcountry" : "India", "speed" : 70 }
{ "_id" : 4, "name" : "Polo", "color" : "White", "cno" : "H104", "mfdcountry" : "Japan", "speed" : 65 }
{ "_id" : 5, "name" : "Volkswagen", "color" : "JetBlue", "cno" : "H105", "mfdcountry" : "Rome", "speed" : 80 }
{ "_id" : 6, "name" : "HondaCity", "color" : "Grey", "cno" : "H106", "mfdcountry" : "Sweden", "speed" : 45 }
{ "_id" : ObjectId("54746407d785e3a05a1808a6"), "name" : "Santro", "color" : "Pale Blue", "cno" : "H107", "mfdcountry" : "Denmark", "speed" : 55 }
{ "_id" : 8, "name" : "Zen", "speed" : 54 }
{ "_id" : 9, "name" : "SwiftDezire", "color" : "Maroon", "cno" : "H108", "mfdcountry" : "New York", "speed" : 40 }
{ "_id" : ObjectId("5474642dd785e3a05a1808a7"), "name" : "Punto", "color" : "Wine Red", "cno" : "H109", "mfdcountry" : "Paris", "speed" : 45 }

Документы вставлены, и, как видите, это неупорядоченная вставка. Если метод вставки сталкивается с ошибкой, результат включает поле “WriteResult.writeErrors”, указывающее сообщение об ошибке, вызвавшее сбой.

Вставка дублирующего значения идентификатора


> db.car.insert({_id:6,name:"Innova"})
WriteResult({
	"nInserted" : 0,
	"writeError" : {
		"code" : 11000,
		"errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: journaldev.car.$_id_  dup key: { : 6.0 }"
	}
})
> 

Ошибка указывает на то, что мы вставляем документ для идентификатора 6, который уже содержит документ, и поэтому возникает ошибка дублирования ключа для значения идентификатора 6.

Метод Bulk.insert() в MongoDB

Этот метод выполняет операцию вставки в больших объемах. Он введен с версии 2.6 и выше. Синтаксис: Bulk.insert(<документ>). Документ: указывает документ для вставки. Теперь давайте рассмотрим пример массовой вставки.

Массовая неупорядоченная вставка


> var carbulk = db.car.initializeUnorderedBulkOp();
> carbulk.insert({ name:"Ritz", color:"Grey",cno:"H109",mfdcountry:"Mexico",speed:62});
> carbulk.insert({ name:"Versa", color:"Magenta",cno:"H110",mfdcountry:"France",speed:68});
> carbulk.insert({ name:"Innova", color:"JetRed",cno:"H111",mfdcountry:"Dubai",speed:72});
> carbulk.execute();
BulkWriteResult({
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 3,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})
> 

Создается неупорядоченный список с именем carbulk, и указывается запрос на вставку с полями и значениями для вставки. Обратите внимание, что необходимо вызвать метод execute() после последнего оператора вставки, чтобы убедиться, что данные действительно вставлены в базу данных.

Вставка в MongoDB с соблюдением порядка

Это аналогично неупорядоченной массовой вставке, но мы используем вызов initializeOrderedBulkOp.


>var car1bulk = db.car.initializeOrderedBulkOp();
>car1bulk.insert({ name:"Ertiga", color:"Red",cno:"H112",mfdcountry:"America",speed:65});
>car1bulk.insert({ name:"Quanta", color:"Maroon",cno:"H113",mfdcountry:"Rome",speed:78});
>car1bulk.execute();
BulkWriteResult({
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 2,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})

Сначала мы создаем упорядоченный список коллекции автомобилей с именем carbulk1, а затем вставляем документы, вызывая метод execute().

Программа на Java для массовой вставки в MongoDB

Давайте посмотрим на программу на Java для различных операций с массовыми данными, которые мы видели с помощью команд оболочки до сих пор. Ниже приведена программа на Java для массовой вставки с использованием драйвера MongoDB java версии 2.x.

package com.journaldev.mongodb;

import com.mongodb.BasicDBObject;
import com.mongodb.BulkWriteOperation;
import com.mongodb.BulkWriteResult;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

public class MongoDBBulkInsert {

	//метод, который вставляет все документы 
    public static void insertmultipledocs() throws UnknownHostException{
    
    //Получить новое соединение с базой данных, предполагая, что она работает    
 
     MongoClient mongoClient = new MongoClient("localhost");
    
     ////используйте test в качестве базы данных, используйте свою базу данных здесь 
     DB db=mongoClient.getDB("test");
     
     ////извлечь объект коллекции, здесь используется car, используйте свой собственный 
     DBCollection coll = db.getCollection("car");
     
    //создать новый объект
    DBObject d1 = new BasicDBObject();
    
    //данные для объекта d1
    d1.put("_id", 11);
    d1.put("name","WagonR");
    d1.put("color", "MetallicSilver");
    d1.put("cno", "H141");
    d1.put("mfdcountry","Australia");
    d1.put("speed",66);
    
    DBObject d2 = new BasicDBObject();
    
    //данные для объекта d2
    d2.put("_id", 12);
    d2.put("name","Xylo");
    d2.put("color", "JetBlue");
    d2.put("cno", "H142");
    d2.put("mfdcountry","Europe");
    d2.put("speed",69);
        
    
    DBObject d3 = new BasicDBObject();
    
    //данные для объекта d3
    d3.put("_id", 13);
    d3.put("name","Alto800");
    d3.put("color", "JetGrey");
    d3.put("cno", "H143");
    d3.put("mfdcountry","Austria");
    d3.put("speed",74);
    
    //создать новый список
    List docs = new ArrayList<>();
    
    //добавить d1, d2 и d3 в список docs
    docs.add(d1);
    docs.add(d2);
    docs.add(d3);
    
    //вставить список docs в коллекцию
    coll.insert(docs);
    
    
    //хранит результат в курсоре
    DBCursor carmuldocs = coll.find();
    
    
    //печать содержимого курсора
     try {
         while(carmuldocs.hasNext()) {
       System.out.println(carmuldocs.next());
        }
    }        finally {
            carmuldocs.close();//close the cursor
    } 
    
    
    }
    
    //метод, который вставляет документы с некоторыми полями
    public static void insertsomefieldsformultipledocs() throws UnknownHostException{
    
    //Получить новое соединение с базой данных, предполагая, что она работает    
 
     MongoClient mongoClient = new MongoClient("localhost");
    
     ////используйте test в качестве базы данных, используйте свою базу данных здесь 
     DB db=mongoClient.getDB("test");
     
     ////извлечь объект коллекции, здесь используется car, используйте свой собственный 
     DBCollection coll = db.getCollection("car");
    
    //создать объект d1 
    DBObject d1 = new BasicDBObject();
    
    //вставить данные для имени, цвета и скорости
    d1.put("name","Indica");
    d1.put("color", "Silver");
    d1.put("cno", "H154");
    
    
    DBObject d2 = new BasicDBObject();
    
    //вставить данные для id, имени и скорости
    d2.put("_id", 43);
    d2.put("name","Astar");
    
    d2.put("speed",79);
        
    
    
    
    List docs = new ArrayList<>();
    docs.add(d1);
    docs.add(d2);
   
    
    coll.insert(docs);
    
    DBCursor carmuldocs = coll.find();
    
     System.out.println("-----------------------------------------------");
     try {
         while(carmuldocs.hasNext()) {
       System.out.println(carmuldocs.next());
        }
    }        finally {
            carmuldocs.close();//close the cursor
    } 
    
    
    }
    
    //метод, который проверяет наличие дублирующихся документов
    public static void insertduplicatedocs() throws UnknownHostException{
    
    //Получить новое соединение с базой данных, предполагая, что она работает    
 
     MongoClient mongoClient = new MongoClient("localhost");
    
     ////используйте test в качестве базы данных, используйте свою базу данных здесь 
     DB db=mongoClient.getDB("test");
     
     ////извлечь объект коллекции, здесь используется car, используйте свой собственный 
     DBCollection coll = db.getCollection("car");
     
    DBObject d1 = new BasicDBObject();
    
    //вставить дублирующиеся данные id11
    d1.put("_id", 11);
    d1.put("name","WagonR-Lxi");
    
    coll.insert(d1);
    
   
    DBCursor carmuldocs = coll.find();
    
     System.out.println("-----------------------------------------------");
     try {
         while(carmuldocs.hasNext()) {
       System.out.println(carmuldocs.next());
        }
    }        finally {
            carmuldocs.close();//close the cursor
    } 
    
    
    }
    
    //метод для выполнения массового неупорядоченного списка
    public static void insertbulkunordereddocs() throws UnknownHostException{
    
    //Получить новое соединение с базой данных, предполагая, что она работает    
 
     MongoClient mongoClient = new MongoClient("localhost");
    
     ////используйте test в качестве базы данных, используйте свою базу данных здесь 
     DB db=mongoClient.getDB("test");
     
     ////извлечь объект коллекции, здесь используется car, используйте свой собственный 
     DBCollection coll = db.getCollection("car");
     
    DBObject d1 = new BasicDBObject();
    
    
    d1.put("name","Suzuki S-4");
    d1.put("color", "Yellow");
    d1.put("cno", "H167");
    d1.put("mfdcountry","Italy");
    d1.put("speed",54);
    
    DBObject d2 = new BasicDBObject();
    
    
    d2.put("name","Santro-Xing");
    d2.put("color", "Cyan");
    d2.put("cno", "H164");
    d2.put("mfdcountry","Holand");
    d2.put("speed",76);
        
    //инициализировать и создать неупорядоченную массу
    BulkWriteOperation  b1 = coll.initializeUnorderedBulkOperation();
    
    //вставить d1 и d2 в массу b1
    b1.insert(d1);
    b1.insert(d2);
    
    //выполнить массу
    BulkWriteResult  r1 = b1.execute();
    
    
    
    DBCursor carmuldocs = coll.find();
    
    System.out.println("-----------------------------------------------");
     try {
         while(carmuldocs.hasNext()) {
       System.out.println(carmuldocs.next());
        }
    }        finally {
            carmuldocs.close();//close the cursor
    } 
    
    
    }
    
    //метод, который выполняет массовую вставку для упорядоченного списка
       public static void insertbulkordereddocs() throws UnknownHostException{
    
    //Получить новое соединение с базой данных, предполагая, что она работает    
 
     MongoClient mongoClient = new MongoClient("localhost");
    
     ////используйте test в качестве базы данных, используйте свою базу данных здесь 
     DB db=mongoClient.getDB("test");
     
     ////извлечь объект коллекции, здесь используется car, используйте свой собственный 
     DBCollection coll = db.getCollection("car");
     
    DBObject d1 = new BasicDBObject();
    
    
    d1.put("name","Palio");
    d1.put("color", "Purple");
    d1.put("cno", "H183");
    d1.put("mfdcountry","Venice");
    d1.put("speed",82);
    
    DBObject d2 = new BasicDBObject();
    
    
    d2.put("name","Micra");
    d2.put("color", "Lime");
    d2.put("cno", "H186");
    d2.put("mfdcountry","Ethopia");
    d2.put("speed",84);
        
    //инициализировать и создать упорядоченную массу 
    BulkWriteOperation  b1 = coll.initializeOrderedBulkOperation();
    
    b1.insert(d1);
    b1.insert(d2);
    
    //вызов выполнения
    BulkWriteResult  r1 = b1.execute();
    
    
    
    DBCursor carmuldocs = coll.find();
    
    System.out.println("-----------------------------------");
    
     try {
         while(carmuldocs.hasNext()) {
       System.out.println(carmuldocs.next());
        }
    }        finally {
            carmuldocs.close();//close the cursor
    } 
    
    
    }
    
    
    public static void main(String[] args) throws UnknownHostException{
        
       //вызвать все методы для выполнения операции вставки
       
       insertmultipledocs();
       insertsomefieldsformultipledocs();
       
        insertbulkunordereddocs();
        insertbulkordereddocs();
        insertduplicatedocs();
    }

}

Ниже представлен результат выполнения вышеуказанной программы.


{ "_id" : 11 , "name" : "WagonR" , "color" : "MetallicSilver" , "cno" : "H141" , "mfdcountry" : "Australia" , "speed" : 66}
{ "_id" : 12 , "name" : "Xylo" , "color" : "JetBlue" , "cno" : "H142" , "mfdcountry" : "Europe" , "speed" : 69}
{ "_id" : 13 , "name" : "Alto800" , "color" : "JetGrey" , "cno" : "H143" , "mfdcountry" : "Austria" , "speed" : 74}
-----------------------------------------------
{ "_id" : 11 , "name" : "WagonR" , "color" : "MetallicSilver" , "cno" : "H141" , "mfdcountry" : "Australia" , "speed" : 66}
{ "_id" : 12 , "name" : "Xylo" , "color" : "JetBlue" , "cno" : "H142" , "mfdcountry" : "Europe" , "speed" : 69}
{ "_id" : 13 , "name" : "Alto800" , "color" : "JetGrey" , "cno" : "H143" , "mfdcountry" : "Austria" , "speed" : 74}
{ "_id" : { "$oid" : "548860e803649b8efac5a1d7"} , "name" : "Indica" , "color" : "Silver" , "cno" : "H154"}
{ "_id" : 43 , "name" : "Astar" , "speed" : 79}
-----------------------------------------------
{ "_id" : 11 , "name" : "WagonR" , "color" : "MetallicSilver" , "cno" : "H141" , "mfdcountry" : "Australia" , "speed" : 66}
{ "_id" : 12 , "name" : "Xylo" , "color" : "JetBlue" , "cno" : "H142" , "mfdcountry" : "Europe" , "speed" : 69}
{ "_id" : 13 , "name" : "Alto800" , "color" : "JetGrey" , "cno" : "H143" , "mfdcountry" : "Austria" , "speed" : 74}
{ "_id" : { "$oid" : "548860e803649b8efac5a1d7"} , "name" : "Indica" , "color" : "Silver" , "cno" : "H154"}
{ "_id" : 43 , "name" : "Astar" , "speed" : 79}
{ "_id" : { "$oid" : "548860e803649b8efac5a1d8"} , "name" : "Suzuki S-4" , "color" : "Yellow" , "cno" : "H167" , "mfdcountry" : "Italy" , "speed" : 54}
{ "_id" : { "$oid" : "548860e803649b8efac5a1d9"} , "name" : "Santro-Xing" , "color" : "Cyan" , "cno" : "H164" , "mfdcountry" : "Holand" , "speed" : 76}
-----------------------------------
{ "_id" : 11 , "name" : "WagonR" , "color" : "MetallicSilver" , "cno" : "H141" , "mfdcountry" : "Australia" , "speed" : 66}
{ "_id" : 12 , "name" : "Xylo" , "color" : "JetBlue" , "cno" : "H142" , "mfdcountry" : "Europe" , "speed" : 69}
{ "_id" : 13 , "name" : "Alto800" , "color" : "JetGrey" , "cno" : "H143" , "mfdcountry" : "Austria" , "speed" : 74}
{ "_id" : { "$oid" : "548860e803649b8efac5a1d7"} , "name" : "Indica" , "color" : "Silver" , "cno" : "H154"}
{ "_id" : 43 , "name" : "Astar" , "speed" : 79}
{ "_id" : { "$oid" : "548860e803649b8efac5a1d8"} , "name" : "Suzuki S-4" , "color" : "Yellow" , "cno" : "H167" , "mfdcountry" : "Italy" , "speed" : 54}
{ "_id" : { "$oid" : "548860e803649b8efac5a1d9"} , "name" : "Santro-Xing" , "color" : "Cyan" , "cno" : "H164" , "mfdcountry" : "Holand" , "speed" : 76}
{ "_id" : { "$oid" : "548860e803649b8efac5a1da"} , "name" : "Palio" , "color" : "Purple" , "cno" : "H183" , "mfdcountry" : "Venice" , "speed" : 82}
{ "_id" : { "$oid" : "548860e803649b8efac5a1db"} , "name" : "Micra" , "color" : "Lime" , "cno" : "H186" , "mfdcountry" : "Ethopia" , "speed" : 84}
Exception in thread "main" com.mongodb.MongoException$DuplicateKey: { "serverUsed" : "localhost:27017" , "ok" : 1 , "n" : 0 , "err" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.car.$_id_  dup key: { : 11 }" , "code" : 11000}
	at com.mongodb.CommandResult.getWriteException(CommandResult.java:88)
	at com.mongodb.CommandResult.getException(CommandResult.java:79)
	at com.mongodb.DBCollectionImpl.translateBulkWriteException(DBCollectionImpl.java:314)
	at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:189)
	at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:165)
	at com.mongodb.DBCollection.insert(DBCollection.java:93)
	at com.mongodb.DBCollection.insert(DBCollection.java:78)
	at com.mongodb.DBCollection.insert(DBCollection.java:120)
	at com.journaldev.mongodb.MongoDBBulkInsert.insertduplicatedocs(MongoDBBulkInsert.java:163)
	at com.journaldev.mongodb.MongoDBBulkInsert.main(MongoDBBulkInsert.java:304)

Если вы используете драйвер MongoDB для Java версии 3.x, то воспользуйтесь следующей программой.

package com.journaldev.mongodb.main;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class MongoDBBulkInsert {

	public static void main(String[] args) throws UnknownHostException {

		// вызов всех методов для выполнения операции вставки

		insertmultipledocs();
		insertsomefieldsformultipledocs();

		insertduplicatedocs();
	}

	// метод, вставляющий все документы
	public static void insertmultipledocs() throws UnknownHostException {

		// Получение нового подключения к базе данных, предполагая, что она работает

		MongoClient mongoClient = new MongoClient("localhost");

		//// используйте test в качестве базы данных, укажите свою базу данных здесь
		MongoDatabase db = mongoClient.getDatabase("test");

		//// получение объекта коллекции, здесь используется "car", используйте свой собственный
		MongoCollection coll = db.getCollection("car");

		// создание нового объекта
		Document d1 = new Document();

		// данные для объекта d1
		d1.put("_id", 11);
		d1.put("name", "WagonR");
		d1.put("color", "MetallicSilver");
		d1.put("cno", "H141");
		d1.put("mfdcountry", "Australia");
		d1.put("speed", 66);

		Document d2 = new Document();

		// данные для объекта d2
		d2.put("_id", 12);
		d2.put("name", "Xylo");
		d2.put("color", "JetBlue");
		d2.put("cno", "H142");
		d2.put("mfdcountry", "Europe");
		d2.put("speed", 69);

		Document d3 = new Document();

		// данные для объекта d3
		d3.put("_id", 13);
		d3.put("name", "Alto800");
		d3.put("color", "JetGrey");
		d3.put("cno", "H143");
		d3.put("mfdcountry", "Austria");
		d3.put("speed", 74);

		// создание нового списка
		List docs = new ArrayList<>();

		// добавление d1, d2 и d3 в список docs
		docs.add(d1);
		docs.add(d2);
		docs.add(d3);

		// вставка списка docs в коллекцию
		coll.insertMany(docs);

		// сохранение результата в курсоре
		FindIterable carmuldocs = coll.find();

		for (Document d : carmuldocs)
			System.out.println(d);

		mongoClient.close();
	}

	// метод, вставляющий документы с некоторыми полями
	public static void insertsomefieldsformultipledocs() throws UnknownHostException {

		// Получение нового подключения к базе данных, предполагая, что она работает

		MongoClient mongoClient = new MongoClient("localhost");

		//// используйте test в качестве базы данных, укажите свою базу данных здесь
		MongoDatabase db = mongoClient.getDatabase("test");

		//// получение объекта коллекции, здесь используется "car", используйте свой собственный
		MongoCollection coll = db.getCollection("car");

		// создание объекта d1
		Document d1 = new Document();

		// вставка данных для name, color и speed
		d1.put("name", "Indica");
		d1.put("color", "Silver");
		d1.put("cno", "H154");

		Document d2 = new Document();

		// вставка данных для id, name и speed
		d2.put("_id", 43);
		d2.put("name", "Astar");

		d2.put("speed", 79);

		List docs = new ArrayList<>();
		docs.add(d1);
		docs.add(d2);

		coll.insertMany(docs);

		FindIterable carmuldocs = coll.find();

		System.out.println("-----------------------------------------------");

		for (Document d : carmuldocs)
			System.out.println(d);

		mongoClient.close();

	}

	// метод, проверяющий наличие дубликатов документов
	public static void insertduplicatedocs() throws UnknownHostException {

		// Получение нового подключения к базе данных, предполагая, что она работает

		MongoClient mongoClient = new MongoClient("localhost");

		//// используйте test в качестве базы данных, укажите свою базу данных здесь
		MongoDatabase db = mongoClient.getDatabase("test");

		//// получение объекта коллекции, здесь используется "car", используйте свой собственный
		MongoCollection coll = db.getCollection("car");

		Document d1 = new Document();

		// вставка дублирующихся данных для id11
		d1.put("_id", 11);
		d1.put("name", "WagonR-Lxi");

		coll.insertOne(d1);

		FindIterable carmuldocs = coll.find();

		System.out.println("-----------------------------------------------");

		for (Document d : carmuldocs)
			System.out.println(d);

		mongoClient.close();

	}

}

Ниже приведено изображение примерного запуска указанной программы по массовой вставке данных в MongoDB с использованием языка Java. Вот и всё по массовой вставке в MongoDB с использованием оболочки Mongo и драйвера Java. Мы рассмотрим более много операций в MongoDB в предстоящих сообщениях.

Source:
https://www.digitalocean.com/community/tutorials/mongodb-bulk-insert-insertmany