Java Spring MongoDB @query с регулярным выражением - PullRequest
0 голосов
/ 14 мая 2019

Кто-нибудь может мне помочь с преобразованием следующего запроса:

@Query("{$or:[{'name':?0},{'synonims':?0}]}")
Stream<Examination> customFind(String str);

в запрос с регулярным выражением, которое разрешало бы запросы без учета регистра согласно документации Spring:

ТОЧНО (без учета регистра) {"firstname" : { $regex: /^firstname$/, $options: 'i'}}

Следующее не работает:

@Query("{$or:[{'name':{ $regex: '/^?0$/', $options: 'i' }},{'synonims':{ $regex: '/^?0$/', $options: 'i' }}]}")

1 Ответ

0 голосов
/ 14 мая 2019

Символ ? - это специальный символ в регулярном выражении, который означает необязательно , например a?, что означает, что a может быть там или нет.

Вы должны его избежатьесли вы хотите сопоставить его.

$regex: '/^\?0$/'

А если вам нужно выразить это буквально, тогда вам понадобятся две косые черты:

$regex: '/^\\?0$/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...