使用mongoose api和nodejs搜索数据库?

use*_*482 7 mongoose mongodb node.js

即时通讯使用nodejs和mongoose来构建一个api,我试图做搜索功能,但它似乎查询任何东西,代码.

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

    });
});
Run Code Online (Sandbox Code Playgroud)

它没有给我任何结果,我知道他们应该至少从这个查询得到4个结果,问题数据库中的4个文件用"noodles"这个词,一切正在工作的数据库连接和我的节点服务器

Joh*_*yHK 14

您的查询正在执行的是查找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);
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 谢谢我解决了它我只需要发送正则表达式作为一个像`/ search /:key`这样的参数,然后在正文中只有`var regex = new RegExp(req.params.key,'i');`: ) (2认同)