MongoDB/Java with MongoDB

MongoDB CRUD with Java

Soul-Learner 2015. 12. 8. 15:15

MongoDB와 Java를 사용한 CRUD 수행 예


MongoDB Java Driver Download

http://search.maven.org/remotecontent?filepath=org/mongodb/mongo-java-driver/2.12.3/mongo-java-driver-2.12.3.jar

mongo-java-driver-2.12.3.jar


Maven 프로젝트를 사용한다면....

<dependency>

    <groupId>org.mongodb</groupId>

    <artifactId>mongo-java-driver</artifactId>

    <version>2.12.3</version>

</dependency>



package org.kdea.java.mongodb;

import java.net.UnknownHostException;

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.MongoClient;
import com.mongodb.WriteResult;

public class MongodbTest {

	public static void main(String[] args) {

        // MongoDB 서버에 접속한다
        MongoClient mongo = null;
		try {
			mongo = new MongoClient("localhost", 27017);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}
		
		// 서버 안의 특정 데이터베이스에 연결한다
        DB db = mongo.getDB("mydb");
        
        // 연결된 데이터베이스에 포함된 Collection에 연결한다
        DBCollection col = db.getCollection("emp");
         
        //연결된 Collection 안에 한개의 Document를 저장한다
        BasicDBObjectBuilder docBuilder = BasicDBObjectBuilder.start();
        
        docBuilder.append("_id", 101);
        docBuilder.append("ename", "Jone");
        docBuilder.append("job", "Manager");
        docBuilder.append("dept", "Account");
        
        DBObject doc = docBuilder.get(); // Document
        WriteResult result = col.insert(doc);
        printResult(result);
        
        /** Document는 다음과 같이 생성할 수도 있다
        BasicDBObject doc = new BasicDBObject();
        doc.append("_id", 105);
        doc.append("ename", "Jone");
        doc.append("job", "Manager");
        doc.append("dept", "Account");
        */
        
        //연결된 Collection 안에서 특정 Document를 찾는다
        DBObject query = BasicDBObjectBuilder.start().add("_id", 101).get();
        DBCursor cursor = col.find(query);
        
        System.out.println("가져온 데이터-----------------------------");
        while(cursor.hasNext()){
            System.out.println(cursor.next());//Document 리턴
        }
        /** Document로부터 필드를 추출하는 예
        DBObject resultDoc = cursor.next();
        String ename = (String)resultDoc.get("ename");
        */
        
        //Collection 안에 저장된 Document를 갱신한다
        docBuilder = BasicDBObjectBuilder.start();

        BasicDBObject newDoc = new BasicDBObject();
        newDoc.append("job", "Researcher");
        newDoc.append("dept", "Sales");
        
        docBuilder.append("$set", newDoc);
        doc = docBuilder.get(); // Document
        DBObject updateQuery = BasicDBObjectBuilder.start().add("dept", "Account").get();
        result = col.update(updateQuery, doc); //  한개의 Doc 갱신
        //result = col.updateMulti(updateQuery, doc); //다수개의 Doc 갱신
        printResult(result);
         
        //Collection 안에 저장된 특정 Document 를 삭제한다
        DBObject removeQuery = BasicDBObjectBuilder.start().add("_id", 105).get();
        result = col.remove(removeQuery);
        printResult(result);
         
        mongo.close();
	}
	
	static void printResult(WriteResult result){
		// update,remove 된 Doc 수, insert 시에는 0
        System.out.println("N:"+ result.getN());
        //update시만 true
        System.out.println("isUpdateOfExisting:"+result.isUpdateOfExisting());
	}

}