如何在graphql查询筛选器中使用或/和,或制作不区分大小写的筛选器?
就像帖子中的提问一样,我需要能够搜索3种可能的场景。我需要所有大写、小写或普通大小写 如果这是不可能的,有没有办法做一个不区分大小写的过滤器呢如何在graphql查询筛选器中使用或/和,或制作不区分大小写的筛选器?,graphql,gatsby,Graphql,Gatsby,就像帖子中的提问一样,我需要能够搜索3种可能的场景。我需要所有大写、小写或普通大小写 如果这是不可能的,有没有办法做一个不区分大小写的过滤器呢 allMarkdownRemark(filter: { brand: { eq: $normalBrand } }) { //==> Need more here edges { node { webImages { url
allMarkdownRemark(filter: { brand: { eq: $normalBrand } }) { //==> Need more here
edges {
node {
webImages {
url
}
}
}
}
我发现有些人在这样做:
filter: { OR: [
{brand: { eq: $normalBrand }},
{brand: { eq: $normalBrand2 }},
{brand: { eq: $normalBrand3 }}
]}
但是它对我不起作用目前,graphql本身没有任何内置的东西可以在安装搜索中使用case,它完全基于graphql服务器正在运行的任何库,如果选择添加对该库的支持。如果您可以修改graphql查询代码,那么您可以自己以某种方式添加该代码,或者请求托管/构建该代码的人以某种方式添加该功能 关于或,我怀疑我能说得比 GraphQL不支持AND/OR运算符,原因正是您在文章顶部提到的:它不映射到任何类型的存储。我认为要正确理解为什么它没有这些,需要改变思维模式。我们认为GraphQL比数据库语言更类似于RPC语言 为了帮助理解心智模型的转变,思考编程语言中的函数调用等字段和参数是很有用的。因此,假设我们问一个类似的javascript问题:为什么不能键入:
getCaseByStatus(“打开”或“关闭”)
?我认为,答案是因为JavaScript不知道在这种上下文中是什么意思。是否应以某种方式组合值“打开”
和“关闭”
,以产生另一个值?函数的执行是否应该以某种方式改变?JavaScript不能确定——因为基于字段的过滤概念不是JavaScript语义的一部分。
正则表达式有效吗?差不多
allMarkdownRemark(filter: { brand: {
regex: "/($normalBrand)|($normalBrand2)|($normalBrand3)/"
} }) {
edges {
node {
webImages {
url
}
}
}
}
尝试使用小写字母“或”
过滤器:{or:[{brand:{eq:$normalBrand}},{brand:{eq:$normalBrand2}},{brand:{eq:$normalBrand3}}]}这可能是相关的:如果你不能问它问题,它不是一种查询语言。