2014-07-17 4 views
0

나는 Mongodb와 함께 작업하기 위해 Java Spring을 사용하고 있습니다. 설명란에 '관리자'라는 단어가있는 문서를 찾아야합니다. 나는이 방법정규 표현식을 Mongodb와 함께 사용하기

방법 1

Query query = new Query(); 
query.addCriteria(Criteria.where("discription").regex("/\bmanager\b/")); 

방법 2

Query query = new Query(); 
Pattern p = Pattern.compile("/\bmanager\b/"); 
query.addCriteria(Criteria.where("discription").regex(p)); 

그러나이 중 어느 것도 작동되지 않았다 다음 시도했다. 나는 몽고 브 콘솔과 같이 이것을 시도했다.

db.test.find({discription: {$regex: /\bmanager\b/}}) 

그것은 내가 기대했던대로 작동했다. Java 코드의 문제점.

답변

0

Pattern.compile()을 사용하지 않고 곧바로 정규식 문자열을 전달할 수있는 것 같습니다. 너 그거 해봤 니?

+0

예 첫 번째 방법으로 시도했습니다. – pasanmaduranga

+0

doh. 그것을 놓쳤습니다. '설명'이 아닌 DB에서의 '디스크 릿션'입니까? – evanchooly

+0

:) 그냥 타이핑 실수. 설명이어야합니다. – pasanmaduranga

1

정규식 메서드에서 슬래시를 추가 할 필요가 없습니다. 정규식 메서드는이를 처리합니다. 따라서

Query query = new Query(); 
query.addCriteria(Criteria.where("description").regex("\bmanager\b")); 

이 작동해야합니다.

+0

그것은 나를 위해 작동하지 않습니다. – pasanmaduranga

+0

그러면 뭔가 잘못하고있는 것입니다. 여기를보십시오 : http://www.mkyong.com/mongodb/spring-data-mongodb-like-query-example/ –

+0

아마 쿼리 대신 BasicQuery를 사용해야합니다. 또 다른 방법은 SpringData의 저장소 기능을 사용하는 것입니다. –

관련 문제