2017-12-02 208 views
0

我有一个用户数据库,我试图在我的数据库中按名称搜索, 例如: 如果我的数据库有firstName as, 艾伦 亚历 阿伦 Alexender 鲍勃 比尔我在mongoDb的搜索查询返回一个空列表,同时使用正则表达式来搜索

当我写我的查询

router.get('/friendSearch/:q', function (req, res) { 
var result = []; 
User.find({firstName: "/" + req.params.q + "/"}, function (err, list) { 
    if (err) { 
     console.log(err); 
    } 
    else { 
     console.log("In else"); 
     console.log(list); 
    } 
}); 

});

在我的请求,通过“A” PARAMS查询应返回, 艾伦 亚历 阿伦 Alexender

但是,尽管我得到一个空列表。 感谢

回答

0

使用$regex代替:

{firstName: { '$regex' : req.params.q, '$options' : 'i' }} 

可以去除$options如果你想。 i参数用于搜索不区分大小写以匹配大小写的情况。 如果您不需要区分大小写的选项,你可以写你的查询这样的:

{firstName: { '$regex' : req.params.q}} 

这里documentation