我正在尝试找到与某个枚举匹配的结果,这是我的type
:
type User {
id: ID! @id
fname:String!
lname:String!
email:String! @unique
password: String
school_ID: String #@relation(Link: INLINE)
role: [Role] @scalarList(strategy: RELATION)
resetToken: String
resetTokenExpiry: String
}
我可以搜索电子邮件,因为它有它的@unique
密钥,但它Role
是一个枚举,我不能@unique
向它添加密钥,这是有道理的,因为结果不会是唯一的。
但是我不断收到此消息:
“变量 \"$_v0_where\" 的值无效 {\"role\":\"TEACHER\"};字段 \"role\" 未由 UserWhereUniqueInput 类型定义。”
如果我想使用电子邮件查找项目,使用电子邮件可以得到我想要的结果。
我所追求的是获得与所选枚举结果匹配的所有对象的数组返回。
在我的架构中,我有这个:
users: [User]!
user(where: UserWhereInput!): User
findUser(role: Role, id: ID, email: String): User
在我的查询解析器中,我正在使用以下内容:
users: forwardTo('db'),
user: forwardTo('db'),
async findUser(parent, args, ctx, info) {
return ctx.db.query.user({
where: {email: args.email, id: args.id, role: args.role}
}, info)
},
我正在使用 prisma (1.17.1) 生成我的模式
如何更改我的代码或findUser
函数以提供我想要的结果?