首页 > 解决方案 > prisma2:如何通过 prisma.user.findMany() 中的非必填字段进行过滤?

问题描述

这是我的棱镜数据模型:

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 只允许必填字段来过滤它。有什么办法可以做到这一点?

标签: javascriptnode.jsgraphqlprismaprisma-graphql

解决方案


我认为可以按可选字段进行过滤。例如,这个片段对我有用。

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

推荐阅读