Создание поиска / фильтра в express mon go react - PullRequest
1 голос
/ 02 августа 2020

Я пытаюсь создать меню фильтров для фильтрации входящих данных от mongodb. Я использую .find (); функция для ограничения входящих данных.

такое использование Post.find({boatType: "Cruiser"})

Итак, вот что я получил на данный момент. Я передаю данные, которые мне нужно фильтровать, с помощью запроса

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

express Backend

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

, и здесь я застрял. После того, как я передаю запросы в серверную часть узла, я понятия не имею, как заставить функцию .find () работать с несколькими полями. и еще больше меня сбивает с толку то, что эти запросы будут динамическими c. Иногда запроса "корпус" не будет, или может быть, что нет "продавца", et c et c. Есть ли лучший способ делать то, что я делаю? Должен ли я использовать $ Regex или $ in ... я потерялся, и документация мне не помогает.

вся помощь приветствуется.

1 Ответ

1 голос
/ 02 августа 2020

вы должны просто передать свой объект запроса в Post.find(), например:

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

Вы можете проверить здесь и здесь для получения более подробной информации.

...