小编Oli*_*_st的帖子

如何在 Prisma ORM 中过滤关系

我目前正在从事课程服务工作。用户可以注册和取消注册课程。整个系统采用微服务架构构建,这意味着用户由另一个服务管理。因此,课程服务的数据模型如下所示:

model course {
  id                Int                @id @default(autoincrement())
  orderNumber       Int                @unique
  courseNumber      String             @unique @db.VarChar(255)
  courseName        String             @db.VarChar(255)
  courseOfficer     String             @db.VarChar(255)
  degree            String             @db.VarChar(255)
  ectCount          Int
  faculty           String             @db.VarChar(255)
  isWinter          Boolean            @default(false)
  isSummer          Boolean            @default(false)
  courseDescription String?            @db.VarChar(255)
  enrollmentCourse  enrollmentCourse[]
}

model enrollmentCourse {
  id       Int    @id @default(autoincrement())
  userId   String @db.VarChar(1024)
  course   course @relation(fields: [courseId], references: [id])
  courseId Int
}
Run Code Online (Sandbox Code Playgroud)

我想查找某个用户注册的所有课程。我写了2个查询。我们浏览一下课程并尝试筛选注册课程。然而,这个不起作用,我拿回了所有课程。而第二个则检查注册课程,然后使用映射返回课程。这是可行的,但我不喜欢这个解决方案,如果它有效的话,我更喜欢第一个查询:(我已经使用本指南来编写第一个查询:here

const result1 = await this.prisma.course.findMany({
  where: { enrollmentCourse: { every: { userId: user.id } } },
  include: …
Run Code Online (Sandbox Code Playgroud)

postgresql relation nestjs prisma

2
推荐指数
1
解决办法
5351
查看次数

标签 统计

nestjs ×1

postgresql ×1

prisma ×1

relation ×1