как искать строку во всей строке в петлевом запросе - PullRequest
2 голосов
/ 20 июня 2019

Я хочу искать всю строку, когда я набираю любое слово, оно соответствует только первому символу, а не всей строке и среднему символу строки.

query.and.push({ or: [{ name: { like: '^' + data.searchTextNEM + '.*', options: 'i' } }, { email: { like: '^' + data.searchTextNEM + '.*', options: 'i' } },{ phone: { like: '^' + data.searchTextNEM + '.*', options: 'i' } }]});

Users.find({where: query, limit: data.limit,skip: data.skip },function(err,res){})

Как будто у меня есть две строки 1.mark и 2.denim, если я наберу 'm', мой ответ должен быть помеченным и джинсовым, но получая ответ только mark

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Вы можете попробовать это: -

name: { ilike: '%' + data.searchTextNEM + '%' }

Это также будет соответствовать тексту без учета регистра.

или:

Вы можетеесть параметры в подобном фильтре: -

?filter={"where":{"title":{"like":"someth.*","options":"i"}}}
0 голосов
/ 20 июня 2019

Я думаю, что ваше регулярное выражение неверно. Если вы вставите «m», ваше регулярное выражение станет ^m.*, что означает «начинается с m, а затем имеет любое количество любых символов». Я думаю, что вы хотите .*m.*, что означает «имеет любое число любого символа, затем m, затем любое число любого символа»:

query.and.push({ or: [{ name: { like: '.*' + data.searchTextNEM + '.*', options: 'i' } }, { email: { like: '.*' + data.searchTextNEM + '.*', options: 'i' } },{ phone: { like: '.*' + data.searchTextNEM + '.*', options: 'i' } }]});
 Users.find({where: query, limit: data.limit,skip: data.skip },function(err,res){
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...