2

我刚开始使用 Primsa 2,所以我仍然是个菜鸟,但我想做的只是Array<number>根据从特定字段获得的值创建一个平面字符串数组()。现在,当我定位该字段时,它会给我一个对象数组,如下所示:userIds: [{ issueId: 1, userId: 1 }]

我想要的只是从userId键和数组中获得的值,然后像这样返回userIds: [ 1 ]。在查询完成后,我可以使用一些格式化代码来解决这个问题:

const issues = project.issues.map(issue => ({ ...issue, userIds: [...issue.userIds.map((id) => id.userId)] }))
const _project = { ...project, issues }

然而,这似乎不是最优化的解决方案。如果这是唯一可行的方法,但我假设 Prisma 具有查询功能,那么我可以仅在查询中执行此操作吗?

作为参考,我的查询目前如下所示:

const project = await prisma.project.findFirst({
  where: { id: req.currentUser.projectId },
  include: { users: true, issues: { include: { userIds: true } } },
})

提前致谢!

4

1 回答 1

0

你能展示你的架构吗?也许您可以对关系进行不同的建模。但是,除非您提供一个字段 ,userIds这是一个平面数组而不是其他关系的字段,否则它将作为您已经拥有的对象列表返回。

于 2021-05-30T11:02:37.673 回答