MongoDB/Java with MongoDB
MongoDB CRUD with Java
Soul-Learner
2015. 12. 8. 15:15
MongoDB와 Java를 사용한 CRUD 수행 예
MongoDB Java Driver Download
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()); } }