我想在棱镜中过滤关系 id 并获得相同的实体,而不是相关的实体。简单的例子:
type User {
firstName: String!
lastName: String!
isOwner: [Meta!]! @relation(link: INLINE, name: "User_Meta_Owner")
id: ID! @id
}
type Meta {
owner: User! @relation(link: INLINE, name: "User_Meta_Owner")
area: Area! @relation(link: INLINE, name: "Meta_Area")
id: ID! @id
}
type Area {
id: ID! @id
name: String!
meta: Meta! @relation(link: INLINE, name: "Meta_Area")
}
在这种情况下,我想要所有Meta
拥有 id 所有者和 id 所有者userID
的Area
实体areaID
。
什么是可能的:
ctx.db.user({ id: 'userID' }).isOwner()
这一切都Meta
没有该区域的过滤器。
我想要的是这样的:
ctx.db.user({ id: 'userID' }).isOwner({ where: { area: 'areaID' })
ctx.db.metas({ where: [{ owner: 'userID' }, { area: 'areaID' }] })
由于属性区域只是一个关系,prisma 没有给我过滤甚至获取 id 的机会。
IE:
await ctx.db.user({ id: 'userID' }).isOwner()
将产生一个对象数组,例如:
[{
id: '...'
}]
我的问题是,有没有办法在不删除关系和存储简单字符串的情况下获得我想要的结果?