我的应用程序的基本功能:客户开始在输入字段中输入电子邮件地址,并收到与他们输入的字符相匹配的自动建议结果。
我已经尝试在我的 Node 应用程序中的 Mongoose/Mongo 中实现它,如下所示:
let customer = await Customer.find({
'email_address': {
$regex: searchQuery
}
})
重要的是要注意,我实际上为 email_address
设置了一个索引,以提高性能,但我在某处读到使用 regex
将无法通过索引进行搜索?我阅读了有关此的文档,但我更加困惑。无论如何,问题的主要症结如下:
我知道通过执行类似 /^exampleEmailAddress/
的操作,它将匹配以查询开头的结果(不是通配符搜索)。这就是我要的。
但是,当 exampleEmailAddress
是我从 req.query
获得的变量时,我该怎么做呢?我试过:
let customer = await Customer.find({
'email_address': {
$regex: /^`${searchQuery}`/
}
})
这是行不通的。我觉得我在这里缺少一些基本的东西......
最佳答案
您可以使用类 RegExp
const customer = await Customer.find({
email_address: {
$regex: new RegExp(`^${searchQuery}`),
},
});
关于javascript - 使用变量在 node.js 应用程序中执行正则表达式 Mongo 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49253382/