问题描述
给出以下模式。我如何使用pyramida2客户端查询每个存储库上的最新提交?
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
}
解决方法
我认为您的架构应更像这样:
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,})