2013-05-24 2 views
3

Я ищу регулярное выражение, используя MongoRepository внутри аннотации Query. Единственная информация, которую я нашел до сих пор, - это китайский пост, но не объясняю, как это работает, и я не уверен, что это то, что я ищу.spring MongoRepository Query regex

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

Кто-нибудь знает, возможно ли в запросе использовать определенное регулярное выражение?

С уважением.

+0

Я уже видел, что с expresion @Query ("{ 'имя': { '$ регулярное выражение': 2, '$' Параметры: ''} без" я «Работает, я не знаю, почему люди используют это письмо там. – paul

ответ

8

i переключает нечувствительность к регистру и позволяет всем буквам в шаблоне соответствовать верхним и нижним регистрам.

Подробнее о $ regex в MongoDB docs.

В вашем запросе похоже, что вы что-то перепутали с порядком параметров (? 2 в regex). Я считаю, что это должно быть:

@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

Другой вопрос: если я хочу использовать $ или с помощью regex patter, я не могу использовать этот запрос? @Query {$ или: ['title' : {'$ regex': "19", '$ options': ''}, 'description': {'$ regex': "19", '$ options': ''}]} Я не знаю, почему, но есть не работает – paul

+0

Я забыл дополнительную {} @Query {$ или: [{'title': {'$ regex': "19", '$ options': ''}}, {'description': {'$ regex ': «19», «$ options»:' '}}]} – paul

Смежные вопросы