【问题标题】:Creating Search/filter in express mongo react在 express mongo react 中创建搜索/过滤器
【发布时间】:2020-11-22 18:48:03
【问题描述】:

我正在尝试构建一个过滤器菜单来过滤来自 mongodb 的传入数据。 我正在使用 .find();限制传入数据的函数。

这样的用法 Post.find({boatType: "Cruiser"})

这就是我到目前为止所得到的。 我通过查询传输需要过滤的数据

const res = await axios.get(`/api/posts/`,
            {
                params: {
                    hull: "Catamaran",
                    boatType: "Cruiser",
                    seller: "Private",
                    etc..
                }
            });

快递后台

const posts = await Post.find({exampleField: "exampleFilter"});

这就是我卡住的地方。在我将查询传递给节点后端之后,我不知道如何让 .find() 函数跨多个字段工作。对我来说更令人困惑的是这些查询将是动态的。有时“船体”查询将不存在,或者可能是“卖家”不存在等等。有没有更好的方法来做我正在做的事情?我应该使用 $Regex 还是 $in... 我迷路了,文档对我没有任何帮助。

感谢所有帮助。

【问题讨论】:

    标签: node.js reactjs mongodb express


    【解决方案1】:

    您应该将您的查询对象传递给Post.find(),如下所示:

    app.get('/api/posts' , (req, res) => {
        // you can access the query from req.query
        const posts = await Post.find(req.query);
    })
    
    

    您可以查看herehere 了解更多详情。

    【讨论】:

    • 谢谢!现在唯一不起作用的是,如果我使用```` {condition: "like new"}```` 字符串中的空格将无法正常工作
    • 你的意思是你有一个像{ ... , condition: "like new" , ...}Post.find({ condition: "like new"})这样的文件找不到它?
    猜你喜欢
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多