【问题标题】:searching database with mongoose api and nodejs?使用 mongoose api 和 nodejs 搜索数据库?
【发布时间】:2012-08-16 12:13:40
【问题描述】:

我正在使用 nodejs 和 mongoose 构建一个 api,我正在尝试执行搜索功能,但它似乎无法查询任何内容,代码。

app.get('/search', function(req,res){
    return Questions.find({text: "noodles"}, function(err,q){
        return res.send(q);

    });
});

它没有给我任何结果,我知道他们应该至少有 4 个来自这个查询的结果,他们的 4 个文档在问题数据库中带有“noodles”这个词,一切都在数据库连接和我的节点服务器上工作

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您的查询所做的是查找 text 属性与 "noodles" 完全匹配的文档。假设您尝试查询 text 属性在某处包含 "noodles" 的文档,则应使用正则表达式:

    app.get('/search', function(req,res){
        var regex = new RegExp('noodles', 'i');  // 'i' makes it case insensitive
        return Questions.find({text: regex}, function(err,q){
            return res.send(q);
        });
    });
    

    【讨论】:

    • 如何发送regex作为api的参数,例如/search/regex
    • 谢谢我解决了我只需要像/search/:key一样发送正则表达式作为参数,然后在正文中只有var regex = new RegExp(req.params.key,'i'); :)
    • 你也可以使用这样的查询。 /search/?q=key 然后var regex = new RegExp(req.query.q);
    • 感谢您的解决方案。虽然似乎 'i' 不区分大小写
    • @mdehghani 嗯...RegExp 的文档显示了i 选项是here。如果它仍然不适合你,也许可以发布一个新问题。
    猜你喜欢
    • 2020-12-08
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多