【问题标题】:Return just single Object instead of Array in NEXT.JS and MongoDB在 NEXT.JS 和 MongoDB 中只返回单个对象而不是数组
【发布时间】:2026-01-09 16:55:01
【问题描述】:

如何返回单个对象而不是数组?因为我只在 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
  ); 

这是一个 Next 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;

【问题讨论】:

  • 简答:res.status(200).json(selectedEvent[0])
  • 简短、简单且正确的答案。谢谢卢卡斯......我认为这是来自猫鼬的一些功能......

标签: javascript reactjs mongodb express next.js


【解决方案1】:

你会想要调用方法.findOne() rather than .find()

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

【讨论】:

  • 感谢 code_monk 这正是我要找的...