我正在 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);
}