반응형

지난 시간에 이어 몽고 DB를 사용해 보도록 하겠습니다.

일단 java Driver를 다운로드하여야 합니다.

 

   <dependency>

        <groupId>org.mongodb</groupId>

        <artifactId>mongodb-driver-sync</artifactId>

        <version>3.11.0</version>

    </dependency>

자세한 다운로드 정보는 아래 링크를 참고 하시면 됩니다.

 

https://docs.mongodb.com/ecosystem/drivers/java/

 

Java MongoDB Driver — MongoDB Ecosystem

MongoDB Compatibility The following compatibility table specifies the recommended version(s) of the MongoDB Java driver for use with a specific version of MongoDB. The first column lists the driver version(s). Java Driver Version MongoDB 4.2 MongoDB 4.0 Mo

docs.mongodb.com

라이브러리는 3개가 설치되는데 정보는 다음과 같습니다.

mongodb-driver-sync-3.11.0.jar

mongodb-dirver-core-3.11.0.jar

bson-3.11.0.jar 

 

지난번에 설치 한 MongoDB에 접속 설정은 다음과 같습니다.

MongoClient mongoClient = MongoClients.create();

 

현재는 보안 설정을 하지 않아서 MongoClients.create()를 하면 DB 세션이 생성 됩니다.

보안 설정은 가이드를 봤는데 연구가 필요할 것 같아 실전에서 다시 해보도록 하겠습니다.

오류 없이 세션 생성되었다면 somework라는 테스트 데이터 베이스를 사용해보겠습니다.

 

사용방법은 아래와 같이 getDatabase 함수를 사용하면 됩니다.

MongoDatabase mongoDatabase = mongoClient.getDatabase("somework");

데이터 베이스를 코드에서 만드는 것을 찾아보았지만 차지 못했고

지난번에 설치한 툴을 이용해 somework를 만들었습니다.

 

somework에 사용할  collection을 만들겠습니다.

collection은 RDBMS 인 경우 table의 개념이라고 생각하시면 됩니다.

처음 somework를 만들 때 somework_data1이라는 collection을 만들었습니다.

 

그래서 여기서는 somework_data2를 만들어 보도록 하겠습니다.

private void createCollection(MongoDatabase mongoDatabase) { 
try {
  mongoDatabase.createCollection(COLLECTION_NAME); 
  System.out.println("## " + COLLECTION_NAME + " on Create");
} catch (Exception e) {
  System.out.println("## " + COLLECTION_NAME + " already");
} 
}


collection 생성까지 완료되었다면 데이터를 insert 해보도록 하겠습니다. 위
메서드는 somework_data2 가 없으면 생성하도록 했습니다.

 

MongoCollection<Document> collections = mongoDatabase.getCollection(COLLECTION_NAME);

document = new Document("name", "myMongos")
          .append("type", "mongo")
          .append("version", "3.11.0")
          .append("date", "2019-09-08");

collections.insertOne(document);

 

데이터가 추가됩니다. 위에서처럼 Doocument 객체를 사용해 입력 데이터를 정의하고 insertOne 메서드를 사용하면

아래 저장된 데이터를 보면 key, value 형식으로 저장이 되고 _id라는 유일 키가 생성됩니다.

이후에는 _id를 이용해 업데이트 가능합니다.

그래서 위 collections.insertOne(documentcollections.insertOne(document)을 반복 실행하면 같은 데이터가 중복되어 들어가는 현상 확인이 됩니다.

 

새로운 데이터를 insert 하도록 코드 추가했습니다.

name 이 다른 경우 추가하도록 했습니다.

 

MongoClient mongoClient = MongoClients.create(); 

MongoDatabase mongoDatabase = mongoClient.getDatabase("somework"); 
createCollection(mongoDatabase);

MongoCollection collections = mongoDatabase.getCollection(COLLECTION_NAME); 

Document document = null; 
document = new Document("name", "myCasandra"); 

if(collections.find(document).first() == null) { 
 System.out.println("## make myCasandra"); 
document.append("type", "casandra").append("version", "1.00.2").append("date", "2019-09-09"); 
collections.insertOne(document); 
} else { 
System.out.println(document.toJson()); 
}

update, delete의 경우 Bson 객체를 사용해서 할 수 있습니다.

 

Bson finder = new Document("name", "myMongo");

Bson values = new Document("version", "4.0");

collections.updateMany(filter, values);

위와 같이 하시면 myMongo의 version이 업데이트되는 것을 확인할 있습니다.

 

 

우선 여기까지만 테스트를 해보았습니다. 

다른 테스트 사항이 많이 있는데요 

그 부분들은 실전에서 사용해보면서 정보 업데이트하겠습니다.

 

위 MongoDB Driver 다운로드하고 가이드를 따라가면 해보시면 도움이 될 것 같습니다.

여기까지 간략한 MongoDB 사용 방법 입었습니다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기