Prisma 客户端查询最新

Posted

技术标签:

【中文标题】Prisma 客户端查询最新【英文标题】:Prisma client query for latest 【发布时间】: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


【问题讨论】:

【参考方案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,
          ,
        ,
      ,
    ,
  )

【讨论】:

以上是关于Prisma 客户端查询最新的主要内容,如果未能解决你的问题,请参考以下文章

使用 Prisma 2 从查询中排除用户密码

Prisma 多对多关系查询

无法生成 Prisma 客户端,outputDir.endsWith 不是函数

从 Svelte Kit 中的加载函数调用 prisma 客户端

从 prisma 生成的客户端访问 graphql 服务器中的数据类型

为啥在后端环境中使用 Prisma?