регулярное выражение Spring MongoRepository Query

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

@Query("{ 'имя':{'$regex':?2,'$options':'i'}, продажи': {'$gte':?1,'$lte':?2}}" ) общедоступная страница findByNameAndAgeRange (имя строки, двойной возраст от, двойной возраст до, страница с возможностью просмотра страниц);

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

С уважением.


person paul    schedule 24.05.2013    source источник
comment
Я уже видел, что с выражением @Query({ 'name':{'$regex':?2,'$options':''} без i работает, я не знаю, почему люди используют эту букву там.   -  person paul    schedule 24.05.2013


Ответы (1)


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

Подробнее о $regex читайте в документах MongoDB.

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

@Query("{ 'name':{$regex:?0,$options:'i'}, sales': {$gte:?1,$lte:?2}}") 
public Page findByNameAndAgeRange(String name,double ageFrom,double ageTo,Pageable page);
person Maciej Walkowiak    schedule 24.05.2013
comment
Другой вопрос: если я хочу использовать $ или с шаблоном регулярных выражений, я не могу использовать этот запрос? @Query{$or: ['title' : { '$regex' : 19, '$options' : ''}, 'description' : { '$regex' : 19, '$options' : ''}]} не знаю почему но не работает - person paul; 24.05.2013
comment
Я забыл дополнительный {} @Query{$or: [{'title' : { '$regex' : 19, '$options' : ''}}, {'description' : { '$regex' : 19, ' $опции' : ''}}]} - person paul; 24.05.2013
comment
здесь регулярное выражение, переданное как String, заканчивается как String в запросе, поэтому регулярное выражение не будет работать - person ivoba; 14.05.2018