Java MongoDB : Insert a document

In this tutorial, we show you 4 ways to insert below JSON data into a “document“, via Java MongoDB API.

Test Data

Test data in JSON format.


{
	"database" : "mkyongDB",
	"table" : "hosting",
	"detail" : 
		{
			records : 99,
			index : "vps_index1",
			active : "true"
		}
	}
}

1. BasicDBObject example


	BasicDBObject document = new BasicDBObject();
	document.put("database", "mkyongDB");
	document.put("table", "hosting");

	BasicDBObject documentDetail = new BasicDBObject();
	documentDetail.put("records", 99);
	documentDetail.put("index", "vps_index1");
	documentDetail.put("active", "true");
	
	document.put("detail", documentDetail);

	collection.insert(document);

2. BasicDBObjectBuilder example


	BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start()
		.add("database", "mkyongDB")
		.add("table", "hosting");
		
	BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start()
	.add("records", 99)
	.add("index", "vps_index1")
	.add("active", "true");
	
	documentBuilder.add("detail", documentBuilderDetail.get());
	
	collection.insert(documentBuilder.get());

3. Map example


	Map<String, Object> documentMap = new HashMap<String, Object>();
	documentMap.put("database", "mkyongDB");
	documentMap.put("table", "hosting");
		
	Map<String, Object> documentMapDetail = new HashMap<String, Object>();
	documentMapDetail.put("records", 99);
	documentMapDetail.put("index", "vps_index1");
	documentMapDetail.put("active", "true");
	
	documentMap.put("detail", documentMapDetail);
	
	collection.insert(new BasicDBObject(documentMap));

4. JSON parse example


	String json = "{'database' : 'mkyongDB','table' : 'hosting'," +
	  "'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";

	DBObject dbObject = (DBObject)JSON.parse(json);
			
	collection.insert(dbObject);

Full example


package com.mkyong.core;

import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;

/**
 * Java MongoDB : Insert a Document
 * 
 */
public class InsertDocumentApp {
  public static void main(String[] args) {

    try {

	Mongo mongo = new Mongo("localhost", 27017);
	DB db = mongo.getDB("yourdb");
	
	DBCollection collection = db.getCollection("dummyColl");

	// 1. BasicDBObject example
	System.out.println("BasicDBObject example...");
	BasicDBObject document = new BasicDBObject();
	document.put("database", "mkyongDB");
	document.put("table", "hosting");

	BasicDBObject documentDetail = new BasicDBObject();
	documentDetail.put("records", 99);
	documentDetail.put("index", "vps_index1");
	documentDetail.put("active", "true");
	document.put("detail", documentDetail);

	collection.insert(document);

	DBCursor cursorDoc = collection.find();
	while (cursorDoc.hasNext()) {
		System.out.println(cursorDoc.next());
	}

	collection.remove(new BasicDBObject());

	// 2. BasicDBObjectBuilder example
	System.out.println("BasicDBObjectBuilder example...");
	BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start()
		.add("database", "mkyongDB")
                .add("table", "hosting");

	BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start()
                .add("records", "99")
                .add("index", "vps_index1")
		.add("active", "true");

	documentBuilder.add("detail", documentBuilderDetail.get());

	collection.insert(documentBuilder.get());

	DBCursor cursorDocBuilder = collection.find();
	while (cursorDocBuilder.hasNext()) {
		System.out.println(cursorDocBuilder.next());
	}

	collection.remove(new BasicDBObject());

	// 3. Map example
	System.out.println("Map example...");
	Map<String, Object> documentMap = new HashMap<String, Object>();
	documentMap.put("database", "mkyongDB");
	documentMap.put("table", "hosting");

	Map<String, Object> documentMapDetail = new HashMap<String, Object>();
	documentMapDetail.put("records", "99");
	documentMapDetail.put("index", "vps_index1");
	documentMapDetail.put("active", "true");

	documentMap.put("detail", documentMapDetail);

	collection.insert(new BasicDBObject(documentMap));

	DBCursor cursorDocMap = collection.find();
	while (cursorDocMap.hasNext()) {
		System.out.println(cursorDocMap.next());
	}

	collection.remove(new BasicDBObject());

	// 4. JSON parse example
	System.out.println("JSON parse example...");
			
	String json = "{'database' : 'mkyongDB','table' : 'hosting'," +
	  "'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";

	DBObject dbObject = (DBObject)JSON.parse(json);
			
	collection.insert(dbObject);

	DBCursor cursorDocJSON = collection.find();
	while (cursorDocJSON.hasNext()) {
		System.out.println(cursorDocJSON.next());
	}

	collection.remove(new BasicDBObject());
			
    } catch (UnknownHostException e) {
	e.printStackTrace();
    } catch (MongoException e) {
	e.printStackTrace();
    }

  }
}

Output…


BasicDBObject example...
{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34bd"} , "database" : "mkyongDB" , 
"table" : "hosting" , "detail" : { "records" : "99" , "index" : "vps_index1" , "active" : "true"}}

BasicDBObjectBuilder example...
{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34be"} , "database" : "mkyongDB" , 
"table" : "hosting" , "detail" : { "records" : "99" , "index" : "vps_index1" , "active" : "true"}}

Map example...
{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34bf"} , "detail" : { "index" : "vps_index1" , 
"active" : "true" , "records" : "99"} , "table" : "hosting" , "database" : "mkyongDB"}

JSON parse example...
{ "_id" : { "$oid" : "4dc9ef6f237f86642d5b34c0"} , "database" : "mkyongDB" , 
"table" : "hosting" , "detail" : { "records" : 199 , "index" : "vps_index1" , "active" : "true"}}
What is “_id” ?
The _id is added by MongoDB automatically, for identity purpose. From MongoDB document, it said, all element names that start with “_”, “/” and “$” are reserved for internal use.

References

  1. BasicDBObject Java Doc
  2. BasicDBObjectBuilder Java Doc

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

Leave a Reply

avatar
newest oldest most voted
Tomas Echeverri
Guest
Tomas Echeverri

POJO Mapping example left (Frameworks)

sharanayya Guthedar
Guest
sharanayya Guthedar

did u get any information on mapping ??

zubair
Guest
zubair

hi its good work I am also working on this topic MongoDB insert a documenthttp://programmershelper.com/mongodb-insert-document-guideline

Michalis Argyriou
Guest
Michalis Argyriou

Please consider using Document instead of DBobject (the latter is deprecated). See also this link: http://mongodb.github.io/mongo-java-driver/3.0/bson/documents/

rashmi
Guest
rashmi

Hey! What if I dont want to display ‘_id’ but rest of the collection?

Will
Guest
Will

MongoDB rocks. I installed it using the guide at https://www.rosehosting.com/blog/install-mongodb-on-a-centos-vps/ and I am learning it at the moment. Thanks for your Java and MongoDB tutorials.

Ananth
Guest
Ananth

Hi, I wanted to insert a collection of object into MongoDB using java. Could you please let me know the steps

Everett
Guest
Everett

Your examples are always great!!!

Pham Nghiep
Guest
Pham Nghiep

What is the fastest ways to insert? Thanks (y)

Bry24
Guest
Bry24

I think it should be noted that in Example 3 the HashMap implementation could change at some point in the future. This would require updating every old HashMap in the table or just sticking with the old one. Problem is some are not aware and will freak that their table is corrupted when it is fine. Good Job with the examples.

Alex Anderson
Guest
Alex Anderson

I am in love with mongo now.
Thanks sir :)

trackback
Java + MongoDB hello world example

[…] Refer to this Java MongoDB insert example. […]

trackback
MongoDB – A NoSQL Database : SL Tech Umbrella

[…] java-mongodb-insert-a-document […]

armen
Guest
armen

Bravo!!!!

trackback
Java MongoDB Tutorial

[…] Java MongoDB : Insert a document 4 ways to insert JSON data into a mongoDB. […]

amine
Guest
amine
i want insert in mongodb via http but doesn’t work :'( plz help public class addProduct extends Activity{ TextView codbarText,typeText,produitText,avisText,descriptionText,dateText; String codbarText_,typeText_,produitText_,avisText_,descriptionText_,dateText_; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.addproduct); codbarText=(TextView) findViewById(R.id.editText1); typeText=(TextView) findViewById(R.id.editText2); produitText=(TextView) findViewById(R.id.editText3); avisText=(TextView) findViewById(R.id.editText4); descriptionText=(TextView) findViewById(R.id.editText5); dateText=(TextView) findViewById(R.id.editText6); Button btEnreg = (Button) this.findViewById(R.id.buttonenregistrer); btEnreg.setOnClickListener(btEnregListener); Intent thisIntent =getIntent(); String contents=thisIntent.getExtras().getString("contents"); codbarText.setText(contents); } private Button.OnClickListener btEnregListener = new Button.OnClickListener() { public void onClick(View v) { codbarText_ = codbarText.getText().toString(); typeText_ = typeText.getText().toString(); produitText_ = produitText.getText().toString(); avisText_ = avisText.getText().toString(); descriptionText_ = descriptionText.getText().toString(); dateText_ = dateText.getText().toString(); insert_product(codbarText_, typeText_, produitText_, avisText_, descriptionText_,dateText_); Toast.makeText(addProduct.this, "Produit crée avec succès", Toast.LENGTH_SHORT).show(); finish(); } }; public void… Read more »
Egle
Guest
Egle

Hello mkyong,

I was wondering what kind of jar I need for java to recognise “mongo” keyword in imports…