【问题标题】:node js search system regexnode js搜索系统正则表达式
【发布时间】:2021-03-05 05:35:39
【问题描述】:

我注意到我的搜索系统中有一件奇怪的事情: 例如,我们有两个用户:测试和测试,当我在搜索字段中输入测试时,它只会显示一个用户“测试”,但页面不显示其他测试用户...

我的整个系统运行良好,但我注意到这件事,我认为它需要向两个用户展示.. 我当前的代码:

users = await User.find({ "name": { $regex: '.*' + search + '.*' }}, '-password');

【问题讨论】:

  • 这是 mongodb 吗?
  • 是的,数据库是mongodb,我也用moongose

标签: node.js regex mongodb mongoose


【解决方案1】:

我已经这样解决了

const users = await User.find({ 
  name: {
    $regex: '.*' + search + '.*',
    $options: 'i'
}}

【讨论】:

  • 谢谢你的回复,但这并没有解决我的问题,你的例子我的回报是空的。在我的第一篇文章中,一切都很好,只是大小写字母的问题
  • @user15324999 我已经更新了答案。请尝试这种方式。
  • 这次你解决了这个问题,非常感谢..我可以再问你关于搜索系统的事情吗?我用 const search = escape(req.query.search);获取搜索输入,如果我有类似“测试测试”之类的内容,这是一个用户,当我输入“测试测试”字段时,他不认识这个空格。有什么解决方案吗?
  • 作为query param发送的搜索参数,后端最好使用decodeURI(req.query.search),前端使用encodeURI(search)。
  • 非常感谢,我会努力的:)
猜你喜欢
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 2014-06-02
  • 2023-04-10
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多