티스토리 툴바


MongoDB를 신규 프로젝트의 개발에서 사용하면서 대부분 C와 D 그리고 R연산 위주로만 발생할 수 있도록 구성하여 사용하기에 첨엔 그다지 고급 쿼리는 필요하지 않았다. 하지만 이제 점점 다양한 형태의 쿼리를 요구하게되고 (물론 RDBMS에서보다야 Naive한 형태지만..-_-;;)하게 되었다. 오늘 고민했던 것은 그중 하나인 'OR'형태의 쿼리문 생성이었다.

MongoDB의 tutorial이 비교적 잘 되어있다고는 하나, 현실적인 요구사항을 모두 반영하고 있지는 못하고 그저 아주 기본적인 형태만을 보이고 있다. 단적인 예로, Database를 생성할때 Optimizing을 위한 몇몇 옵션 파라미터들을 줄 수 있는 모양인데, 전혀 그것에 대한 언급이 없다. 그저 SDK를 보고 있다는 것만을 알 수밖에 없다.. 

쿼리 작성예제도 그러한데, 아주 기초적인 것들에 대한 이야기는 너무 잘 나와있고 MongoDB를 설치하고 사용하게 하는데 있어서 최대한 쉽고 간편하게 접근할 수 있도록 구성되어있으나, 역시 거기까지일 뿐 소위 말하는 Where절을 어떻게 매칭할 수 있는지에 대한 이야기가 전혀 없었다... 대부분 간단한 AND조건이나, 대소비교 조건을 사용하는 정도만 나와있을 뿐 정작 OR나 Group을 활용한 것등에 대한 이야기가 없었다. 이번엔 OR조건에 해당하는 쿼리작성법과 이를 Java Driver에서 사용하기 위한 방법을 찾던 중 다른 개발자의 블로그에서 발견한 글이 있어 이렇게 첨부한다.


출처 : http://myadventuresincoding.wordpress.com/2010/03/07/mongodb-queries-in-java-using-conditional-operators/

SQL:
1 SELECT FROM dbo.Cars
2 WHERE make="Ford"
3 AND model IN ("Galaxy","Mustang","Meteor")

MongoDB interactive shell:

1 db.cars.find( { "make":"Ford""model":{ $in: ["Galaxy","Mustang","Meteor"] } } )

MongoDB Java driver:

1 BasicDBObject query = new BasicDBObject();
2 query.put("make""Ford");
3 String models[] = new String[]{"Galaxy""Mustang""Meteor"};
4 query.put("model"new BasicDBObject("$in", models));
5 DBCursor resultsCursor = carsCollection.find(query);

저작자 표시 비영리 변경 금지

'Programming > NoSQL' 카테고리의 다른 글

NoSQL에 대한 고찰  (15) 2010/11/30
MongoDB 성능 테스팅  (2) 2010/11/02
MongoDB Java Driver에서 IN Query사용하기  (0) 2010/11/02
MongoDB Select 예제  (0) 2010/10/26
NoSQL 관련 문서  (0) 2010/10/26
MongoDB Java에서 Connection하기  (0) 2010/10/18
Posted by Jason Park
TAG
이전버튼 1 ... 36 37 38 39 40 41 42 43 44 ... 119 이전버튼