【问题标题】:Prisma client query for latestPrisma 客户端查询最新
【发布时间】:2020-12-18 11:34:51
【问题描述】:

给定以下架构。如何使用 prisma2 客户端查询每个存储库的最新提交?

model Commit {
  id   String   @default(uuid()) @id
  date DateTime @default(now())
}

model Branch {
  id           String     @default(uuid()) @id
  commit       Commit     @relation(fields: [commitId],references: [id])
  commitId     String
  repository   Repository @relation(fields: [repositoryId],references: [id])
  repositoryId String
}

model Repository {
  id String @default(uuid()) @id
}

【问题讨论】:

    标签: prisma prisma2


    【解决方案1】:

    我认为您的架构应该更像这样:

    model Commit {
      id        String   @default(uuid()) @id
      branch    Branch   @relation(fields: [branchId], references: [id])
      createdAt DateTime @default(now())
      branchId  String
    }
    
    model Branch {
      id           String     @default(uuid()) @id
      name         String
      repository   Repository @relation(fields: [repositoryId], references: [id])
      commits      Commit[]
      repositoryId String
    }
    
    model Repository {
      id     String   @default(uuid()) @id
      branch Branch[]
    }
    
    

    您将能够以这种方式从存储库中的所有分支获取最新提交:

    await prisma.repository.findMany({
        select: {
          branch: {
            select: {
              name: true,
              commits: {
                orderBy: {
                  createdAt: 'desc',
                },
                take: 1,
              },
            },
          },
        },
      })
    

    【讨论】:

      猜你喜欢
      • 2022-07-29
      • 2021-10-01
      • 1970-01-01
      • 2022-01-06
      • 2023-03-29
      • 2018-02-07
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多