【发布时间】:2020-12-03 22:46:39
【问题描述】:
Prima 提供了使用 API 查询数据库中记录的快速方法,这些函数非常适用于唯一列。就像我有如下表成员身份
type Membership {
id: ID! @id
memberKey: String! @unique
member: User! @relation(name: "MemberUser")
project: Project! @relation(name: "MemberProject")
access: [Access] @scalarList(strategy: RELATION)
createdBy: User @relation(name: "MembershipCreator")
updatedBy: User @relation(name: "MembershipUpdator")
createdAt: DateTime! @createdAt
updatedAt: DateTime! @updatedAt
}
type Project {
id: ID! @id
initials: String! @unique
name: String! @unique
desc: String
conf: Json
products: [Product!] @relation(name: "ProjectProducts")
tags: [Tag!] @relation(name: "ProjectTags")
isActive: Boolean @default(value: true)
createdBy: User @relation(name: "ProjectCreator")
updatedBy: User @relation(name: "ProjectUpdator")
createdAt: DateTime! @createdAt
updatedAt: DateTime! @updatedAt
}
现在如果需要根据id查询上表,我就可以了
project = await prisma.query.membership({
where: {
project: {
id: projectId
}
}
}, `{ id }`)
但是,如果我必须基于任何非唯一字段(如 Project.id)进行查询,我无法做到这一点,因为 Prisma 默认只创建唯一字段的函数,在我的情况下,我可以查询 id 和会员密钥。我看到的错误是
错误:变量“$_v0_where”的值无效 { member: { id: “ck57qob5z00f90791d1973nbh”}};字段“成员”未按类型定义 MembershipWhereUniqueInput。你是说 memberKey 吗?
请帮忙
【问题讨论】:
-
您确定您发布了正确的错误信息吗?在您的错误消息中,它指出未定义字段“成员”,但它应该是字段“项目,如果有的话。
标签: javascript prisma