티스토리 뷰

반응형


[mongoDB] mongoDB Java 연동하기

Connecting mongoDB with java


  MongoDB Java Driver

아래 링크에 MongoDB java 와 관련된 Driver가 안내되어 있다.

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



mongoDB Java Driver 다운로드 페이지

mongoDB java Driver의 최신버전과 Api, Document를 다운 받을 수 있다.





상단좌측의 Download를 클릭하면 해당버전의 라이브러리파일, 소스코드 등을 다운받을 수 있다.

오른쪽의 Maven과 gradle 설정을 자동으로 생성해주기 때문에 알맞은 환경을 선택해서 라이브러리를 설정하면된다.


Maven
1
2
3
4
5
6
7
<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.4.1</version>
    </dependency>
</dependencies>

Gradle
1
2
3
  dependencies {
    compile 'org.mongodb:mongo-java-driver:3.4.1'
  }





  mongoDB 연동 Java 코드

# Namuwiki 덤프 데이터베이스이용 (참고) - http://dwfox.tistory.com/63

# mongod가 대기상태인 상태에서 연동하도록 한다.


아래 코드로 Collection까지 가져온다.

1
2
3
4
5
6
7
8
MongoClient mongoClient = new MongoClient("localhost", PORT);
logger.info("MongoClient connected");

MongoDatabase db = mongoClient.getDatabase(DATABASE_NAME);
logger.info("Get 'namu' MongoDatabase");

MongoCollection<Document> documentMongoCollection = db.getCollection(COLLECTION_NAME);
logger.info("Get 'namudb' Document");



간단한 쿼리를 만들어보자

- 단순 쿼리

1
2
//title에 keyword 검색
query.put("title", keyword);


- like 쿼리

1
2
// like 검색 (like '%keyword%'와 같음)
query.put("title", Pattern.compile(keyword));


- or like 쿼리

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
List<BasicDBObject> coll = new ArrayList<BasicDBObject>();

// 키워드 1 (like '%keyworkd1%')
coll.add(new BasicDBObject("title", Pattern.compile(keyword1)));

// 키워드 2 (like '%keyworkd2%')
coll.add(new BasicDBObject("title", Pattern.compile(keyword2)));

// 키워드1 or 키워드2
BasicDBObject query = new BasicDBObject("$or", coll);




※ or like 쿼리 전체 코드

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
MongoClient mongoClient = new MongoClient("localhost", PORT);

MongoDatabase db = mongoClient.getDatabase(DATABASE_NAME);

MongoCollection<Document> documentMongoCollection = db.getCollection(COLLECTION_NAME);

BasicDBObject query = new BasicDBObject();
query.put("title", keyword); //titledp keyword
query.put("text", Pattern.compile(keyword));

List<BasicDBObject> coll = new ArrayList<BasicDBObject>();

// 키워드 1 (like '%keyworkd1%')
coll.add(new BasicDBObject("title", Pattern.compile(keyword1)));

// 키워드 2 (like '%keyworkd2%')
coll.add(new BasicDBObject("title", Pattern.compile(keyword2)));

// 키워드1 or 키워드2
BasicDBObject query = new BasicDBObject("$or", coll);

MongoCursor<Document> cursor = documentMongoCollection.find(query).iterator();

try {
    while (cursor.hasNext()) {
        Document document = cursor.next();
        String text = document.get("text").toString();
    }
} finally {
    cursor.close();
}


위와 같이 다양한 방법의 쿼리를 통해 iterator를 사용하여 데이터를 가져오도록 한다.



반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함