我在mongoDb中的搜索查询返回一个空列表,同时使用正则表达式进行搜索

时间:2017-12-02 16:39:47

标签: node.js regex mongodb express mongoose

我有一个用户数据库,我正在尝试在我的数据库中按名称进行搜索, 例如: 如果我的数据库的firstName为, 艾伦 亚历克斯 阿伦 Alexender 短发 比尔

当我写我的查询时

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

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

1 个答案:

答案 0 :(得分:0)

改为使用$regex

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

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

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

这里是documentation