MongoDB + Java Hello World Example



A simple Java and MongoDB hello world example
We will see :
How to connect, create database, collection and document, save, update, remove, get and display document (data).
Tools and technologies used :
  1. MongoDB 2.2.3
  2. MongoDB-Java-Driver 2.10.1
  3. JDK 1.6
  4. Maven 3.0.3
  5. Eclipse 4.2

1. Create a Java Project

Create a simple Java project with Maven.
mvn archetype:generate -DgroupId=com.mkyong.core -DartifactId=mongodb 
  -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2. Get Mongo Java Driver

Download mongo-java driver from github. For Maven users, declares mongo-java driver in pom.xml.

<project ...>
  <dependencies>

 <dependency>
  <groupId>org.mongodb</groupId>
  <artifactId>mongo-java-driver</artifactId>
  <version>2.10.1</version>
 </dependency>

  </dependencies>

  <build>
 <plugins>
  <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>2.3.1</version>
   <configuration>
    <source>1.6</source>
    <target>1.6</target>
   </configuration>
  </plugin>
         <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-eclipse-plugin</artifactId>
   <configuration>
    <downloadSources>true</downloadSources>
    <downloadJavadocs>true</downloadJavadocs>
   </configuration>
  </plugin>

 </plugins>
  </build>

</project>

3. Mongo Connection

Connect to MongoDB server. For MongoDB version >= 2.10.0, uses MongoClient.
// Old version, uses Mongo
 Mongo mongo = new Mongo("localhost", 27017);

 // Since 2.10.0, uses MongoClient
 MongoClient mongo = new MongoClient( "localhost" , 27017 );
If MongoDB in secure mode, authentication is required
MongoClient mongoClient = new MongoClient();
 DB db = mongoClient.getDB("database name");
 boolean auth = db.authenticate("username", "password".toCharArray());

4. Mongo Database

Get database. If the database doesn’t exist, MongoDB will create it for you.
 DB db = mongo.getDB("database name");
Display all databases.
 List<String> dbs = mongo.getDatabaseNames();
 for(String db : dbs){
  System.out.println(db);
 }

5. Mongo Collection

Get collection / table.
 DB db = mongo.getDB("testdb");
 DBCollection table = db.getCollection("user");
Display all collections from selected database.
DB db = mongo.getDB("testdb");
 Set<String> tables = db.getCollectionNames();
   
 for(String coll : tables){
  System.out.println(coll);
 }

6. Save example

Save a document (data) into a collection (table) named “user”.
 DBCollection table = db.getCollection("user");
 BasicDBObject document = new BasicDBObject();
 document.put("name", "mkyong");
 document.put("age", 30);
 document.put("createdDate", new Date());
 table.insert(document);

7. Update example

Update a document where “name=mkyong”.
 DBCollection table = db.getCollection("user");
 
 BasicDBObject query = new BasicDBObject();
 query.put("name", "mkyong");

 BasicDBObject newDocument = new BasicDBObject();
 newDocument.put("name", "mkyong-updated");
    
 BasicDBObject updateObj = new BasicDBObject();
 updateObj.put("$set", newDocument);

 table.update(query, updateObj);

8. Find example

Find document where “name=mkyong”, and display it with DBCursor

 DBCollection table = db.getCollection("user");

 BasicDBObject searchQuery = new BasicDBObject();
 searchQuery.put("name", "mkyong");

 DBCursor cursor = table.find(searchQuery);

 while (cursor.hasNext()) {
  System.out.println(cursor.next());
 }

9. Delete example

Find document where “name=mkyong”, and delete it.
DBCollection table = db.getCollection("user");

 BasicDBObject searchQuery = new BasicDBObject();
 searchQuery.put("name", "mkyong");

 table.remove(searchQuery);

10. Hello World

Let review a complete Java + MongoDB example, see comments for self-explanatory.
App.java
package com.mkyong.core;

import java.net.UnknownHostException;
import java.util.Date;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;

/**
 * Java + MongoDB Hello world Example
 * 
 */
public class App {
  public static void main(String[] args) {

    try {

 /**** Connect to MongoDB ****/
 // Since 2.10.0, uses MongoClient
 MongoClient mongo = new MongoClient("localhost", 27017);

 /**** Get database ****/
 // if database doesn't exists, MongoDB will create it for you
 DB db = mongo.getDB("testdb");

 /**** Get collection / table from 'testdb' ****/
 // if collection doesn't exists, MongoDB will create it for you
 DBCollection table = db.getCollection("user");

 /**** Insert ****/
 // create a document to store key and value
 BasicDBObject document = new BasicDBObject();
 document.put("name", "mkyong");
 document.put("age", 30);
 document.put("createdDate", new Date());
 table.insert(document);

 /**** Find and display ****/
 BasicDBObject searchQuery = new BasicDBObject();
 searchQuery.put("name", "mkyong");

 DBCursor cursor = table.find(searchQuery);

 while (cursor.hasNext()) {
  System.out.println(cursor.next());
 }

 /**** Update ****/
 // search document where name="mkyong" and update it with new values
 BasicDBObject query = new BasicDBObject();
 query.put("name", "mkyong");

 BasicDBObject newDocument = new BasicDBObject();
 newDocument.put("name", "mkyong-updated");

 BasicDBObject updateObj = new BasicDBObject();
 updateObj.put("$set", newDocument);

 table.update(query, updateObj);

 /**** Find and display ****/
 BasicDBObject searchQuery2 
     = new BasicDBObject().append("name", "mkyong-updated");

 DBCursor cursor2 = table.find(searchQuery2);

 while (cursor2.hasNext()) {
  System.out.println(cursor2.next());
 }

 /**** Done ****/
 System.out.println("Done");

    } catch (UnknownHostException e) {
 e.printStackTrace();
    } catch (MongoException e) {
 e.printStackTrace();
    }

  }
}
Output…
{ "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "name" : "mkyong" , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"}}
{ "_id" : { "$oid" : "51398e6e30044a944cc23e2e"} , "age" : 30 , "createdDate" : { "$date" : "2013-03-08T07:08:30.168Z"} , "name" : "mkyong-updated"}
Done
Let use mongo console to check the created database “testdb”, collection “user”, and document.
$ mongo
MongoDB shell version: 2.2.3
connecting to: test

> show dbs
testdb 0.203125GB

> use testdb
switched to db testdb

> show collections
system.indexes
user
> db.user.find()
{ "_id" : ObjectId("51398e6e30044a944cc23e2e"), "age" : 30, "createdDate" : ISODate("2013-03-08T07:08:30.168Z"), "name" : "mkyong-updated" }

Courtesy : www.mkyong.com 

















































Previous
Next Post »

Popular Posts