javascript - 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 只允许必填字段来过滤它。有什么办法可以做到这一点?
解决方案
我认为可以按可选字段进行过滤。例如,这个片段对我有用。
const [user] = await prisma.user.findMany({
where: {
emailToken: args.emailToken,
emailTokenExpiry: {
gte: Date.now() - 3600000,
},
},
});