【发布时间】:2019-12-09 21:54:36
【问题描述】:
我目前正在写一些可以过滤用户列表的东西。过滤器基于一个查询,该查询传递一个filter 参数,然后由解析器拾取,该解析器搜索各个字段并返回数据。
这适用于文本,但 prisma 对您可以对标量执行的搜索类型有一些限制。所以很难看出搜索布尔值的最佳方法是什么。
我的解析器如下所示:
const listUsers = async (parent, args, context, info) => {
const where = args.filter
? {
OR: [
{ name_contains: args.filter },
{ email_contains: args.filter },
{ phone_contains: args.filter },
{ active: args.filter },
],
}
: {}
return await context.prisma.users({
where,
})
}
示例查询如下所示:
query {
listUsers(filter: "test@test.com") {
name
email
}
}
理论上,如果我只是将 'TRUE' 或 'FALSE' 作为过滤器参数传递,这将起作用,但这显然不起作用,因为更多的布尔值被添加到 User 类型中,而且也不是很清楚。
处理这个问题的最佳方法是什么?
【问题讨论】:
标签: javascript graphql prisma prisma-graphql