我正在尝试使用用户生成的字符串变量在 MongoDB 数据库中执行简单的通配符查询。例如,如果用户搜索“Bu”,则应从数据库返回“Burger”和“Burger King”等内容。我已经搜索并尝试了几件事,但似乎没有任何效果。任何帮助将不胜感激。注意:这是客户端 JS。
var text = document.getElementById("Search_Box").value;
var regex = new RegExp(text + ".*");
client.login().then(() => db.collection('businesses')
.find({name:{$regex:regex}}).then(docs => {
console.log("[MongoDB Stitch] Connected to Stitch");
最佳答案
如果您有以下文件:
{
"_id" : ObjectId("5a0f3a464d8a2fe38bec4e92"),
"name" : "Burger"
}
{
"_id" : ObjectId("5a0f3a464d8a2fe38bec4e94"),
"name" : "Burger King"
}
{
"_id" : ObjectId("5a0f3a464d8a2fe38bec4e96"),
"name" : "Booby's"
}
{
"_id" : ObjectId("5a0f3a464d8a2fe38bec4e98"),
"name" : "McDonald"
}
<小时/>
开头
要让一切都以“Bu”开头,你可以这样做
db.collection('businesses').find({name: {$regex: '^Bu'}})
或
db.collection('businesses').find({name: {$regex: /^Bu/}})
<小时/>
在中间
如果您需要在单词中任何位置包含“Ki.*g”的任何内容,您可以这样做:
db.collection('businesses').find({name: {$regex: 'Ki.*g'}})
或
db.collection('businesses').find({name: {$regex: /Ki.*g/}})
努力并阅读文档。一切都在那里进行了解释,并提供了更多细节。 https://docs.mongodb.com/manual/reference/operator/query/regex/
关于javascript - 如何在带有字符串变量的mongoDB查询中使用$regex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356919/