如何在环回查询中搜索整个字符串中的字符串
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.mark
和 2.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"}}}
我想在输入任何单词时搜索整个字符串,它只匹配第一个字符而不匹配整个字符串和字符串的中间字符。
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 和 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"}}}