首页 > 解决方案 > 在 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;

标签: javascriptreactjsmongodbexpressnext.js

解决方案


你会想调用方法.findOne() 而不是 .find()

const selectedEvent = await Events.findOne({
    slug: slug
});

推荐阅读