搜索查询中使用正则表达式
问题描述:
IM建立一个网站,使用的NodeJS,expressjs,MongoDB的,猫鼬,身体解析器和等。搜索查询中使用正则表达式
基本上我已经创建了一个搜索功能,在那里你可以搜索用户基本上它的工作原理,但问题是,它是区分大小写的,我想搜索用户使用不区分大小写。
我在堆栈溢出中发现了一个解决方案,并在我的mongo shell上尝试过。这是命令
db.loginusers.find({
$or:
[
{"firstname": {$regex: /^PIa$/i}},
{"lastname": {$regex: /^NAtUrE$/i}}
]
})
这对mongoshell工作。所以,当我试图把这个在我的JS文件,
app.post("/searchresult", function(req, res){
var thename = req.body.thename;
LoginUser.find({
$or: [
{"firstname": {$regex: /^thename$/i}},
{"lastname": {$regex: /^thename$/i}}
]
}, function(err, searchedUser){
if(err){
console.log(err);
res.redirect("back");
} else {
res.render("searchprofile", {foundUser: searchedUser});
}
});
});
它不工作沉绵我试图把正确的情况下,它不能正常运行的名字..
我的问题是,这样做在我使用JS文件中的正则表达式之前,我需要做些什么?
谢谢你!
LoginUser.find({
$or: [
{'firstname': {$regex: /PIa/i}},
{'lastname': {$regex: /NAtUrE/i}}
]
})
还阅读文档:
答
可以$options:'i"
LoginUser.find({
$or: [
{'firstname': {$options:'i', $regex: 'PIa'}},
{'lastname': {$options:'i', $regex: 'NAtUrE'}}
]
})
或尝试https://docs.mongodb.com/manual/reference/operator/query/regex/
它有像一些不错的功能:$nin
,$options: 'six'
@WiktorStribiżew'thename'是一个变量,我觉得这是最主要的问题。 – robertklep