【问题标题】:How do I filter if an optional relationship exists?如果存在可选关系,如何过滤?
【发布时间】:2021-11-10 00:14:12
【问题描述】:

我有以下架构,其中QuizUser 上的可选关系。

model User {
  email String @id @unique
  quiz  Quiz?
}

model Quiz {
  id        String @id @default(uuid())
  user      User   @relation(fields: [userEmail], references: [email], onDelete: Cascade)
  userEmail String
}

我想找到所有有测验关系的用户。

起初我天真地尝试了以下方法:

const users = await p.user.findMany({
  where: { quiz: true },
})

然后我以为我找到了解决方案in their docs.

const users = await p.user.findMany({
  where: { quiz: { some: {} } },
})

但这给出了错误:

输入'{一些:{}; }' 不可分配给类型 '(Without & QuizWhereInput) | (没有 & QuizRelationFilter) |空 |未定义'。

对象字面量只能指定已知属性,而“some”类型不存在“(Without & QuizWhereInput) | (没有 & QuizRelationFilter)'。

9 其中:{ 测验:{ 一些:{} } },

【问题讨论】:

    标签: typescript prisma prisma2


    【解决方案1】:

    您在文档中找到的解决方案适用于一对多关系。一对一的关系可以这样过滤:

    const users = await p.user.findMany({
      where: { quiz: { isNot: null } },
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-28
      • 2011-11-13
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      • 2016-07-23
      相关资源
      最近更新 更多