具有显式 table 的 Prisma 查询嵌套列表

Prisma query nested list with explicit table

我想向任何人寻求帮助。我正在努力查询我的数据库,其中有 3 个表:Permission、Group、PermissionInGroup。

model Permission {
    @@map(name: "permission")
    id      Int                 @default(autoincrement()) @id
    name    String              @db.VarChar(255)
    groups   PermissionInGroup[]
}

model Group {
    @@map(name: "group")
    id              Int                 @default(autoincrement()) @id
    name            String?
    permissions     PermissionInGroup[]
    users           UserInGroup[]
    domain          Domain              @relation(fields: [domainId], references:[id])
    domainId        Int
}

model PermissionInGroup {
    @@map(name: "permission_in_group")
    id                  Int         @id @default(autoincrement())
    permission          Permission  @relation(fields: [permissionId], references:[id])
    permissionId        Int
    group               Group       @relation(fields: [groupId], references: [id])
    groupId             Int
}

我想要的是查询一个特定的权限(按 ID),我希望它 return 它与所有组。我的 prisma 代码是

prisma.permission.findUnique({
                where: {
                    id: id
                },
                include: {
                    groups: {
                        include: {
                            group:true
                        }
                    }
                }
            }

而 return 是

{
  id: 1,
  name: 'Test permission',
  groups: [ 
    { id: 1, permissionId: 1, groupId: 1, group: [Object] } 
    { id: 2, permissionId: 1, groupId: 2, group: [Object] } 
  ]
}

我的期望是得到这个:

{
  id: 1,
  name: 'Test permission',
  groups: [ 
     {id: 1, name: "Test group", domain: 1},
     {id: 2, name: "Test group 2", domain: 1} 
  ]
}

有什么简单的方法吗?我的意思是我可以用 for 循环来做,但如果可能的话我想避免它的另一个步骤

非常感谢你们

目前,如果在获取数据后不在您的应用程序中更新它,这是不可能的。

您可以按照 this 请求获取更多更新,因为这可以解决您的问题。