[英]How can I update an already stored boolean value in prisma with mongoDB?
[英]How to filter a boolean in prisma
我目前正在写一些可以过滤用户列表的内容。 该过滤器基于一个查询,该查询传递一个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”作为过滤器参数,这将起作用,但是由于向用户类型中添加了更多布尔值,这显然不起作用,并且也不是很清楚。
处理此问题的最佳方法是什么?
您可以在filter
(带有文本)和带有boolean的options
之间进行拆分,例如:
query {
listUsers(filter: "test@test.com", options: {active: true}) {
name
email
}
}
const fields = ['name', 'email', 'phone']
const listUsers = async (parent, args, context, info) => {
const where = {
OR: [
...fields.reduce((acc, field) => {
acc[name+'_contains'] = args.filter
return acc
},{}),
...args.options
]
}
return await context.prisma.users({
where,
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.