Templates by BIGtheme NET

MongoDB CRUD Operation Using Java

In this Article, I will show How to connect to MongoDB
database from java. How to perform retrieve, insert, update
and delete operations.

Tools used :

1) eclipse version Luna 4.4.1.
2) Maven 3.3.3
3) MongoDB 3.0.6 Server.
4) mongo-java-driver 3.0.2.
5) Java 1.8

If you are completely new to mongodb,
please refer mongodb-quick-start

Prerequisites :

1) mongodb Server should be up and running.
2) collection should be created with name “devJavaSource”

Steps to be followed :

1) Create a maven project in eclipse.
2) Add MongoDB java driver dependency to pom.xml file.
3) Start MongoDB server.
4) Write a simple java program.
5) Demo.

Add mongoDB dependency to pom.xml :

MongoDB java driver is required to run java program.

<dependency>
	<groupId>org.mongodb</groupId>
	<artifactId>mongodb-driver</artifactId>
	<version>3.0.2</version>
</dependency>

Complete pom.xml is Here,
pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.devjavasource.mongodb</groupId>
  <artifactId>HelloWorldExample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>HelloWorldExample</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.0.2</version>
    </dependency>
  </dependencies>
</project>

3) Start MongoDB server :

Go to C:\mongodb\bin> monngod.exe is the command to start MongoDB server.

1

4) Write a simple java program :

To get Database connection, create a MongoClient instance and call getDatabase()
method to get database connection to the particular database.

Connect to the local database running on the default port.

MongoClient mongoClient = null;
// Get MongoClient Connect to MongoDB
mongoClient = new MongoClient("localhost", 27017);

// Get database
// If database doesn't exists, MongoDB will create it for you
MongoDatabase db = mongoClient.getDatabase("devjavasource");

Complete example is Here,
App.java

package com.devjavasource.mongodb.HelloWorldExample;

import java.util.Date;

import org.bson.Document;

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

public class App {
	public static void main(String[] args) {

		MongoClient mongoClient = null;
		try {

			// Get MongoClient Connect to MongoDB
			mongoClient = new MongoClient("localhost", 27017);

			// Get database
			// If database doesn't exists, MongoDB will create it for you
			MongoDatabase db = mongoClient.getDatabase("devjavasource");

			// Get collection / table from 'devjavasource'
			// If collection doesn't exists, MongoDB will create it for you
			MongoCollection<Document> collection = db.getCollection("orders");

			// Retrieve all the documents of a specified collection
			retrieve(collection);

			// Insert a new document into MongoDB
			System.out.println("\n********MondoDB - Insert operation ******\n");
			insert(collection);
			retrieve(collection);

			// Update a document
			System.out.println("\n********MondoDB - Update operation ******\n");
			update(collection);
			retrieve(collection);

			System.out.println("\n********MondoDB - Delete operation ******\n");
			collection.deleteOne(new Document("order_id", "41704621"));
			retrieve(collection);

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			mongoClient.close();
		}
	}

	private static void update(final MongoCollection<Document> inCollection) {
		inCollection.updateOne(new Document("order_id", "41704621"),
				new Document("$set", new Document("status", "Executed"))
						.append("$currentDate", new Document("lastModified",
								true)));
	}

	private static void insert(final MongoCollection<Document> inCollection) {
		final Document document = new Document();
		document.put("order_id", "41704621");
		document.put("customer_name", "Stuart Adamson");
		document.put("status", "Ordered");

		final BasicDBObject addressDocument = new BasicDBObject();
		addressDocument.put("street", "13th Street, 2 Lane");
		addressDocument.put("zipcode", "30014");
		addressDocument.put("building", "Avenue Park");
		document.put("address", addressDocument);

		final BasicDBObject itemsDocument = new BasicDBObject();
		itemsDocument.put("item_id", "Item101");
		itemsDocument.put("count", 21);
		itemsDocument.put("date", new Date());
		document.put("Items", itemsDocument);

		inCollection.insertOne(document);
	}

	private static void retrieve(final MongoCollection<Document> inCollection) {
		final FindIterable<Document> itr = inCollection.find();
		final MongoCursor<Document> mongoItr = itr.iterator();
		while (mongoItr.hasNext()) {
			final Document doc = mongoItr.next();
			printit(doc);
		}
	}

	private static void printit(final Document inDoc) {
		System.out.println("Order Details are:");
		System.out.println("====================");
		inDoc.entrySet().stream().forEach(each -> {
			System.out.println("Key : " + each.getKey());
			System.out.println("Value : " + each.getValue());

		});
	}
}

5) Demo :

Select App.java and right click “Run As” -> “Java Application”.

Order Details are:
====================
Key : _id
Value : 55e95be41293cc73ac76c899
Key : address
Value : Document{{street=2 Avenue, zipcode=10075, building=1480, coord=[-73.9557413, 40.7720266]}}
Key : status
Value : Ordered
Key : Items
Value : [Document{{date=Wed Oct 01 05:30:00 IST 2014, item_id=Item101, count=11.0}}, Document{{date=Thu Jan 16 05:30:00 IST 2014, item_id=Item102, count=17.0}}]
Key : customer_name
Value : Rick GoldMan
Key : order_id
Value : 41704620

********MondoDB - Insert operation ******

Order Details are:
====================
Key : _id
Value : 55e95be41293cc73ac76c899
Key : address
Value : Document{{street=2 Avenue, zipcode=10075, building=1480, coord=[-73.9557413, 40.7720266]}}
Key : status
Value : Ordered
Key : Items
Value : [Document{{date=Wed Oct 01 05:30:00 IST 2014, item_id=Item101, count=11.0}}, Document{{date=Thu Jan 16 05:30:00 IST 2014, item_id=Item102, count=17.0}}]
Key : customer_name
Value : Rick GoldMan
Key : order_id
Value : 41704620
Order Details are:
====================
Key : _id
Value : 55e966454ef0ec278cc4324e
Key : order_id
Value : 41704621
Key : customer_name
Value : Stuart Adamson
Key : status
Value : Ordered
Key : address
Value : Document{{street=13th Street, 2 Lane, zipcode=30014, building=Avenue Park}}
Key : Items
Value : Document{{item_id=Item101, count=21, date=Fri Sep 04 15:07:09 IST 2015}}

********MondoDB - Update operation ******

Order Details are:
====================
Key : _id
Value : 55e95be41293cc73ac76c899
Key : address
Value : Document{{street=2 Avenue, zipcode=10075, building=1480, coord=[-73.9557413, 40.7720266]}}
Key : status
Value : Ordered
Key : Items
Value : [Document{{date=Wed Oct 01 05:30:00 IST 2014, item_id=Item101, count=11.0}}, Document{{date=Thu Jan 16 05:30:00 IST 2014, item_id=Item102, count=17.0}}]
Key : customer_name
Value : Rick GoldMan
Key : order_id
Value : 41704620
Order Details are:
====================
Key : _id
Value : 55e966454ef0ec278cc4324e
Key : order_id
Value : 41704621
Key : customer_name
Value : Stuart Adamson
Key : status
Value : Executed
Key : address
Value : Document{{street=13th Street, 2 Lane, zipcode=30014, building=Avenue Park}}
Key : Items
Value : Document{{item_id=Item101, count=21, date=Fri Sep 04 15:07:09 IST 2015}}
Key : lastModified
Value : Fri Sep 04 15:07:09 IST 2015

********MondoDB - Delete operation ******

Order Details are:
====================
Key : _id
Value : 55e95be41293cc73ac76c899
Key : address
Value : Document{{street=2 Avenue, zipcode=10075, building=1480, coord=[-73.9557413, 40.7720266]}}
Key : status
Value : Ordered
Key : Items
Value : [Document{{date=Wed Oct 01 05:30:00 IST 2014, item_id=Item101, count=11.0}}, Document{{date=Thu Jan 16 05:30:00 IST 2014, item_id=Item102, count=17.0}}]
Key : customer_name
Value : Rick GoldMan
Key : order_id
Value : 41704620

Download the source code

You can download the source code here: HelloWorldExample

*** Venkat – Happy leaning ****