0

我正在 NextJS 中使用 SWR 和 API 路由查询 Mongodb Atlas 集合。我希望能够动态更改 API 中的过滤器查询变量。一个用例可能是用户选择查看某些属性,我们需要根据用户的偏好过滤搜索结果。

有没有办法将这些变量传递给 API,或者有没有一种简单的方法来实现这个功能?

这是基本页面代码,swr调用API的地方

const fetcher = url => axios.get(url).then(res => res.data)

const filter = () => {
    const { data, error } = useSWR('/api/data/filter', fetcher)
    if (error) return "An error has occurred.";
    if (!data) return "Loading...";

    return (
        ...
    )
}

这是API

import { connectToDatabase } from "util/mongodb";

export default async (req,res) => {
    const { db } = await connectToDatabase();

    const cursor = db.collection("listingsAndReviews").find(
    {
        // I WOULD LIKE TO DYNAMICALLY SET THESE TWO VALUES
        bedrooms: { $gte: 1 },
        bathrooms: { $gte: 1 }
    }
    )
    .sort({ last_review: -1 })
    .limit(10);

    const results = await cursor.toArray();

    res.json(results);
}
4

0 回答 0