We will look into MongoDB bulk insert today. Multiple documents can be inserted at a time in MongoDB using bulk insert operation where an array of documents is passed to the insert method as parameter.
MongoDB bulk insert
MongoDB bulk insert performs ordered insert by default. If an error occurs during the insertion at a certain point, the insertion does not happen for the remaining documents.
Lets see an example of how to insert multiple documents using mongodb bulk insert through command line.
MongoDB insert many documents
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
> 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" : [ ] }) |
This operation inserted five documents. MongoDB creates an id field automatically if not specified by the user in the query. The “nInserted” column tells the user number of documents that are inserted.
To view the inserted documents perform the following query as shown below.
1 2 3 4 5 6 7 8 9 |
> 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 } > |
Read more about MongoDB find and MongoDB insert operations.
While inserting it is not mandatory for user to provide all the fields in the query. Now lets see how the insert works when some of the fields are not specified.
MongoDB Bulk Insert documents specifying some of the fields
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
> 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" : [ ] }) > |
In this example, for the second document, the id field is not specified by the user and for the third document only id, name and speed fields are supplied in the query. The query does a successful insertion even though some fields are missing in the second and third documents. The nInserted column says that three documents were inserted.
Invoke find method and check the inserted documents.
1 2 3 4 5 6 7 8 9 10 11 12 |
> 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 } > |
Note that the id is automatically generated by MongoDB for the car “Santro”. For id 8 – only name and speed fields are inserted.
Inserting an unordered documents
While performing unordered insertion, if an error occurs at a certain point the mongodb continues to insert the remaining documents in an array.
For example;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
> 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" : [ ] }) > |
The ordered false is specified in the insert query indicating that it is an unordered collection.
Execute db.car.find()
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "_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 } |
The documents are inserted and as you can see, it is an unordered insert.
If the insert method encounters an error, the result includes the “WriteResult.writeErrors” field indicating the error message that caused failure.
Inserting duplicate id value
1 2 3 4 5 6 7 8 9 10 11 |
> 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 }" } }) > |
The error indicates that we are inserting a document for id 6 which already contains a document and hence throws duplicate key error for id of value 6.
MongoDB Bulk.insert() method
This method performs an insert operation in bulk numbers. It is introduced from version 2.6 onwards.
The syntax is Bulk.insert(<document>)
.
document: specifies the document to be inserted.
Now we shall see the example for bulk insertion.
Bulk Unordered insert
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
> 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" : [ ] }) > |
An unordered list named carbulk is created and insert query is specified with the fields, values to be inserted. Note that it is necessary to call the execute() method following the last insert statement to ensure that the data is actually inserted into the database.
MongoDB Bulk Ordered Insert
This is similar to unordered bulk insert but we use initializeOrderedBulkOp
call.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
>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" : [ ] }) |
First we create an ordered list of car collection named carbulk1 and then insert the documents by invoking the execute() method.
MongoDB Bulk Insert Java Program
Let’s see a java program for different bulk operations, that we have seen using shell commands till now. Below is the java program for bulk insert using MongoDB java driver version 2.x.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 |
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 { //method that inserts all the documents public static void insertmultipledocs() throws UnknownHostException{ //Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); ////use test as a datbase,use your database here DB db=mongoClient.getDB("test"); ////fetch the collection object ,car is used here,use your own DBCollection coll = db.getCollection("car"); //create a new object DBObject d1 = new BasicDBObject(); //data for object 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(); //data for object 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(); //data for object 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); //create a new list List<DBObject> docs = new ArrayList<>(); //add d1,d2 and d3 to list docs docs.add(d1); docs.add(d2); docs.add(d3); //insert list docs to collection coll.insert(docs); //stores the result in cursor DBCursor carmuldocs = coll.find(); //print the contents of the cursor try { while(carmuldocs.hasNext()) { System.out.println(carmuldocs.next()); } } finally { carmuldocs.close();//close the cursor } } //method that inserts documents with some fields public static void insertsomefieldsformultipledocs() throws UnknownHostException{ //Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); ////use test as a datbase,use your database here DB db=mongoClient.getDB("test"); ////fetch the collection object ,car is used here,use your own DBCollection coll = db.getCollection("car"); //create object d1 DBObject d1 = new BasicDBObject(); //insert data for name,color and speed d1.put("name","Indica"); d1.put("color", "Silver"); d1.put("cno", "H154"); DBObject d2 = new BasicDBObject(); //insert data for id,name and speed d2.put("_id", 43); d2.put("name","Astar"); d2.put("speed",79); List<DBObject> 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 } } //method that checks for duplicate documents public static void insertduplicatedocs() throws UnknownHostException{ //Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); ////use test as a datbase,use your database here DB db=mongoClient.getDB("test"); ////fetch the collection object ,car is used here,use your own DBCollection coll = db.getCollection("car"); DBObject d1 = new BasicDBObject(); //insert duplicate data of 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 } } //method to perform bulk unordered list public static void insertbulkunordereddocs() throws UnknownHostException{ //Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); ////use test as a datbase,use your database here DB db=mongoClient.getDB("test"); ////fetch the collection object ,car is used here,use your own 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); //intialize and create a unordered bulk BulkWriteOperation b1 = coll.initializeUnorderedBulkOperation(); //insert d1 and d2 to bulk b1 b1.insert(d1); b1.insert(d2); //execute the bulk 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 } } //method that performs bulk insert for ordered list public static void insertbulkordereddocs() throws UnknownHostException{ //Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); ////use test as a datbase,use your database here DB db=mongoClient.getDB("test"); ////fetch the collection object ,car is used here,use your own 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); //initialize and create ordered bulk BulkWriteOperation b1 = coll.initializeOrderedBulkOperation(); b1.insert(d1); b1.insert(d2); //invoking execute 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{ //invoke all the methods to perform insert operation insertmultipledocs(); insertsomefieldsformultipledocs(); insertbulkunordereddocs(); insertbulkordereddocs(); insertduplicatedocs(); } } |
Below is the output of above program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
{ "_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) |
If you are using MongoDB java driver 3.x, then use below program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
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 { // invoke all the methods to perform insert operation insertmultipledocs(); insertsomefieldsformultipledocs(); insertduplicatedocs(); } // method that inserts all the documents public static void insertmultipledocs() throws UnknownHostException { // Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); //// use test as a database,use your database here MongoDatabase db = mongoClient.getDatabase("test"); //// fetch the collection object ,car is used here,use your own MongoCollection<Document> coll = db.getCollection("car"); // create a new object Document d1 = new Document(); // data for object 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(); // data for object 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(); // data for object 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); // create a new list List<Document> docs = new ArrayList<>(); // add d1,d2 and d3 to list docs docs.add(d1); docs.add(d2); docs.add(d3); // insert list docs to collection coll.insertMany(docs); // stores the result in cursor FindIterable<Document> carmuldocs = coll.find(); for (Document d : carmuldocs) System.out.println(d); mongoClient.close(); } // method that inserts documents with some fields public static void insertsomefieldsformultipledocs() throws UnknownHostException { // Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); //// use test as a datbase,use your database here MongoDatabase db = mongoClient.getDatabase("test"); //// fetch the collection object ,car is used here,use your own MongoCollection<Document> coll = db.getCollection("car"); // create object d1 Document d1 = new Document(); // insert data for name,color and speed d1.put("name", "Indica"); d1.put("color", "Silver"); d1.put("cno", "H154"); Document d2 = new Document(); // insert data for id,name and speed d2.put("_id", 43); d2.put("name", "Astar"); d2.put("speed", 79); List<Document> docs = new ArrayList<>(); docs.add(d1); docs.add(d2); coll.insertMany(docs); FindIterable<Document> carmuldocs = coll.find(); System.out.println("-----------------------------------------------"); for (Document d : carmuldocs) System.out.println(d); mongoClient.close(); } // method that checks for duplicate documents public static void insertduplicatedocs() throws UnknownHostException { // Get a new connection to the db assuming that it is running MongoClient mongoClient = new MongoClient("localhost"); //// use test as a database, use your database here MongoDatabase db = mongoClient.getDatabase("test"); //// fetch the collection object ,car is used here,use your own MongoCollection<Document> coll = db.getCollection("car"); Document d1 = new Document(); // insert duplicate data of id11 d1.put("_id", 11); d1.put("name", "WagonR-Lxi"); coll.insertOne(d1); FindIterable<Document> carmuldocs = coll.find(); System.out.println("-----------------------------------------------"); for (Document d : carmuldocs) System.out.println(d); mongoClient.close(); } } |
Below image shows sample run of above mongodb bulk insert java program.
That’s all for bulk insert in MongoDB using Mongo shell and java driver, we will look into more MongoDB operations in coming posts.