You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Prisma查询返回的用户数组重映射为含user外层对象的结构

解决Prisma查询结果结构转换问题

你可以通过两种方式实现目标结构转换:

方案一:数组map直接转换

这是最直接的方式,对查询返回的数组做一次映射,将每个用户对象包裹到user字段中:

// 在获取members之后执行转换
members = members.map(user => ({ user }));

这里利用了对象字面量的简写语法,{ user }等价于{ user: user },能快速生成你需要的结构。如果之前用map没成功,大概率是遗漏了箭头函数返回对象时的外层括号(不加括号会被解析为代码块而非对象)。

方案二:修改Prisma查询直接返回目标结构

如果想避免后续的数据转换步骤,可以直接在Prisma的查询配置中定义返回结构,让查询结果直接符合业务要求:

members = await prisma.user.findMany({
  select: {
    user: {
      select: {
        id: true,
        username: true,
        name: true,
        bio: true,
        avatar: true,
      }
    }
  },
  skip: 10 * Number(page),
  take: 10,
});

这样查询返回的结果会直接是[{ user: {...} }, ...]的格式,无需额外处理,适合需要频繁使用该结构的场景,能减少数据处理开销。

内容的提问来源于stack exchange,提问作者rockets4all

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:30:43