如何在环回查询中搜索整个字符串中的字符串

how to search string in whole string in loopback query

我想在输入任何单词时搜索整个字符串,它只匹配第一个字符而不匹配整个字符串和字符串的中间字符。

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.mark2.denim 如果我输入 'm' 我的响应应该是 mark 和 denim 但只得到响应 mark

我认为您的正则表达式不正确。如果您插入 'm',您的正则表达式将变为 ^m.*,这意味着 "starts with m and then has any number of any characters"。我想你想要 .*m.* 这意味着 "has any number of any character, then an m, then any number of any character":

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){
})

你可能试过这个:-

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

它也会匹配不区分大小写的文本。

或:

您可能已经通过了类似过滤器的选项:-

?filter={"where":{"title":{"like":"someth.*","options":"i"}}}