2014-08-28 3 views
0

을하고 질의 객체를 통해 이런 일에 전달해야합니다 : 봤는데MongoDB의 쿼리 생성자는 내가 쿼리 문자열을하는 개념을 마련하기 위해 노력하고 원시 쿼리 문자열 자바

returnList = mongoTemplateTracking.find(query,TrackingData.class, COLLECTION_NAME); 

그들은 같은 날 문자열을 할 수 있는지 확인하기 위해 쿼리 및 기준 클래스 모두의 생성자보고 :. 대신 조건이 Criteria.where를 통해 객체 구축의

"ID" : "32399a" 

은() 등) (인 ..

나는 내 수업에 mongoTemplateTracking를 autowiring에하고 나는이 방법을 액세스 할 수 없습니다 그러나 방법을

protected <T> List<T> doFind(String collectionName, 
       com.mongodb.DBObject query, 
       com.mongodb.DBObject fields, 
       Class<T> entityClass) 

을 보았다.

답변

2

MongoDB 쿼리 언어 ("MQL")는 JSON 형식으로 쉽게 표현됩니다. 이 같은 문자열 표현 그래서 만약 :

String s = "{\"$or\": [ {\"name\": \"buzz\"}, {\"age\": {\"$lt\": 20 }} ] }"; 

를 다음 쉽게 폴더의 유틸리티로 구문 분석 할 수 있습니다

import com.mongodb.util.JSON; 
DBObject query = (DBObject) JSON.parse(s); 
yourCollection.find(query); 

긴 쿼리에 따옴표를 이스케이프를 만들기 위해 In Java, is there a way to write a string literal without having to escape quotes?에서 봐 것은 조금 연산 식 더 쉽습니다.