gpt4 book ai didi

regex - 使用正则表达式在 mongodb 中搜索查询

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:29 25 4
gpt4 key购买 nike

我正在构建一个网站,使用nodejs、expressjs、mongodb、mongoose、body-parser等。

基本上我创建了一个搜索功能,您可以在其中搜索用户,基本上它可以工作,但问题是,它区分大小写,我想使用不区分大小写的方式搜索用户。

我在堆栈溢出中找到了一个解决方案,并在我的 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 文件上使用正则表达式之前我需要做一些事情吗?

谢谢!

最佳答案

因为 thename 是一个变量,所以使用 RegExp对象构造函数从变量创建一个正则表达式实例,然后您可以在查询中使用该实例:

var rgx = new RegExp("^"+ thename +"$", "i");
LoginUser.find({
"$or": [
{"firstname": rgx },
{"lastname": rgx }
]
}, callback);

关于regex - 使用正则表达式在 mongodb 中搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39614608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com