如何在Hasura中对数组字段类型运行GraphQL筛选器查询?

如何在Hasura中对数组字段类型运行GraphQL筛选器查询?,graphql,hasura,postgraphile,Graphql,Hasura,Postgraphile,我正在尝试对数组字段类型运行GraphQL筛选器查询,例如对文本数组字段类型 在以下示例场景中: 创建表 createtableemployee( 名字文本, 姓氏文本, 标签文本[] ); 我们可以通过以下方式之一对文本数组字段进行过滤: 对数组类型具有条件的SELECT语句 SELECT*FROM Employee WHERE tags@>ARRAY['teamplayer']::varchar[] 这在PostGres和Postgraphile中都是隐含的 在Postgraphile

我正在尝试对数组字段类型运行GraphQL筛选器查询,例如对文本数组字段类型

在以下示例场景中:

创建表

createtableemployee(
名字文本,
姓氏文本,
标签文本[]
);
我们可以通过以下方式之一对文本数组字段进行过滤:

对数组类型具有条件的SELECT语句

SELECT*FROM Employee WHERE tags@>ARRAY['teamplayer']::varchar[]
这在PostGres和Postgraphile中都是隐含的

在Postgraphile GraphQL上,我们可以查询上表,如下所示:

质疑

结果将是:

回应


有人能给我一些关于如何在Hasura的数组字段类型上获得类似结果的参考或建议吗?

我认为您不能在Hasura控制台中直接使用数组。您应该改用
jsonb
。它更合适,因为您可以使用
\u append
\u prepend
\u delete\u key

但似乎您可以将
Array
与hasura一起使用。如果您的模式来自外部服务,那么数组的输入应该是文本。对于类型为
tags[]
的列,输入值必须是如下字符串:
“{teamplayer,守时}”
。这就是
数组的方式

因此,您的突变将是:

mutation {
  insert_table(objects:{
    tags: "{teamplayer,punctual}"
  }) {
    returning {
      tags
    }
  }
}

大家好,欢迎来到StackOverflow!请看一看并考虑编辑你的问题,如果你没有给我们提供任何你尝试过的代码,我们就不能帮助你,这样我们就可以帮你找到答案了!杰弗里,谢谢你的反馈。按建议编辑。
  {
  "data": {
    "allEmployees": {
      "nodes": [
         {
             firstName: 'Russell'
             lastName: 'Dodds'
             tags: ['teamplayer', 'punctual']
         },
         {
             firstName: 'Emma'
             lastName: 'Samsin'
             tags: ['teamplayer']
         }
      ]
    }
  }
}
mutation {
  insert_table(objects:{
    tags: "{teamplayer,punctual}"
  }) {
    returning {
      tags
    }
  }
}