javascript - 在 NEXT.JS 和 MongoDB 中只返回单个对象而不是数组
问题描述
我如何返回单个对象而不是数组?因为我只在 api 中询问单个“事件”,所以我使用 MongoDB + Next.js
我总是得到
[{}]
我只是想让它得到
{}
const fetchWithId = (url: RequestInfo) => fetch(url).then((r) => r.json());
const index = () => {
const router = useRouter();
const { data, error } = useSWR(
`http://localhost:3000/api/events/event?slug=${router.query.slug}`,
fetchWithId
);
这是下一个 API
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
const {
method,
query: { slug},
} = req;
if (req.method !== 'GET') {
return;
}
await dbConnect();
const selectedEvent = await Events.find({
slug: slug,
});
res.status(200).json(selectedEvent);
};
export default handler;
解决方案
你会想调用方法.findOne() 而不是 .find():
const selectedEvent = await Events.findOne({
slug: slug
});
推荐阅读
- google-apps-script - 如果范围在范围列表中
- python - Matlab/OpenModelica 生成的 FMU 是否支持 fmi2GetFMUState/fmi2SetFMUState?
- python - 得到 gai & socket 错误,我不确定这些是什么意思
- reactjs - 更新功能组件道具不会改变样式
- r - 在R中的DT Datatable顶部放置分页?
- powerbi - 如何基于 EnabledDate、EnabledDate + 1、EnabledDate + 2、EnabledDate + 7 和 power bi 上的日期过滤选项创建汇总表?
- java - 如何使用 Immutables 和 Egg 模式设置基类字段
- docker - docker 使用 nvidia 运行时构建
- html - Bootstrap 4 上的 Display 属性问题
- linux - PM2进程崩溃时如何自动重启?