2013-05-24 1 views
3

Query 어노테이션 내에서 MongoRepository를 사용하여 정규 표현식을 사용하려고합니다. 지금까지 내가 발견 한 유일한 정보는 중국 지부이지만 작동 방식을 설명하지 않으며, 내가 찾고있는 것이 맞는지 확실치 않습니다.spring MongoRepository Query regex

@Query ("{ 'name': '$ regex':? 2, '$ options': 'i'}, sales ': {'$ gte ':? 1,'$ lte ':? 2}} ") public Page findByNameAndRange (문자열 이름, double ageFrom, double ageTo, Pageable 페이지);

누군가가 쿼리에서 특정 정규식을 사용할 수 있는지 알고 있습니까?

감사합니다.

+0

내가 이미 본 그 expresion @query (와 '{'이름 '{'$ 정규식 ': 2,'$ 옵션 ':' '}없이 "내가 "작동하지 않는 이유는 무엇입니까? – paul

답변

8

i는 대소 문자를 구분하지 않으며 대문자와 소문자가 일치하도록 패턴의 모든 문자를 허용합니다.

MongoDB docs에서 $ regex에 대해 자세히 알아보십시오.

당신이 매개 변수 순서 (이름 정규식에서? 2)와 뭔가를 섞은 것처럼 보입니다. 나는 그것이 있어야한다고 생각 :

@Query("{ 'name':{$regex:?0,$options:'i'}, sales': {$gte:?1,$lte:?2}}") 
public Page findByNameAndAgeRange(String name,double ageFrom,double ageTo,Pageable page); 
+0

참으로 고마워요 – paul

+0

$ 또는 정규 표현을 사용하고 싶다면 또 다른 질문이 있습니까? @Query {$ or : [ 'title' : { '$ regex': "19", '$ options': ''}]} 왜 그런지 모르지만 작동하지 않음 – paul

+0

{@ 또는 {{ '제목': { '$ regex': '19', '$ options': ''}}, { 'description': { '$ regex ': "19",'$ options ':' '}}] – paul

관련 문제