prisma2:如何通过 prisma.user.findMany() 中的非必填字段进行过滤?

Posted

技术标签:

【中文标题】prisma2:如何通过 prisma.user.findMany() 中的非必填字段进行过滤?【英文标题】:prisma2: How to filter by a non required field in prisma.user.findMany()? 【发布时间】:2020-09-09 17:20:21 【问题描述】:

这是我的 prisma 数据模型:

datasource db 
  provider = "mysql"
  url      = env("DATABASE_URL")


generator client 
  provider = "prisma-client-js"


model User 
  id               Int      @default(autoincrement()) @id
  email            String   @unique
  name             String
  password         String
  emailVerified    Boolean  @default(false)
  emailToken       String?
  emailTokenExpiry Float?
  createdAt        DateTime @default(now())
  updatedAt        DateTime @updatedAt


这里,emailToken 是一个可选字段。但我想按此字段过滤。 像这样:

await prisma.user.findMany(where: emailToken: emailToken)

但是,prisma 只允许必填字段进行过滤。有什么方法可以实现吗?

【问题讨论】:

【参考方案1】:

我认为可以通过可选字段进行过滤。 例如,这个 sn-p 对我有用。

const [user] = await prisma.user.findMany(
      where: 
        emailToken: args.emailToken,
        emailTokenExpiry: 
          gte: Date.now() - 3600000,
        ,
      ,
    );

【讨论】:

以上是关于prisma2:如何通过 prisma.user.findMany() 中的非必填字段进行过滤?的主要内容,如果未能解决你的问题,请参考以下文章

prisma2:如何获取嵌套字段?

prisma2 migrate 错误:数据库中的迁移比本地多

从 Prisma2 中的辅助表中获取数据

prisma2 订阅返回数据:null

用 Apollo-server 和 Prisma 2 开玩笑

用于解析器 GraphQL 瑜伽的 TypeScript 类型(在上下文中使用 prisma2)