我正在尝试对数组字段类型(例如,文本数组字段类型)运行GraphQL过滤器查询。
在以下示例方案中:
创建表格
xfontsel
我们可以通过以下其中一种方式对文本数组字段进行过滤:
在阵列类型上选择带有CONDITION的声明
CREATE TABLE Employee (
firstName text,
lastName text,
tags text[]
);
这在PostGres中也适用于Postgraphile。
在Postgraphile GraphQL上,我们可以按以下方式查询上表:
查询
SELECT * FROM Employee WHERE tags @> ARRAY['teamplayer']::varchar[]
结果将是:
响应
{
allEmployees(filter: {tags: {contains: "teamplayer"}}) {
nodes {
firstName
lastName
tags
}
}
}
有人可以给我一些有关在Hasura中如何在ARRAY字段类型上实现类似结果的参考或建议吗?
答案 0 :(得分:0)
我认为您不能直接在Hasura控制台中使用数组。您应该改用jsonb
。可以使用_append
,_prepend
,_delete_key
...
但是似乎您可以将Array
与hasura一起使用。如果您的架构来自外部服务,则数组的输入应为文字。对于类型为tags[]
的列,输入值必须为字符串,例如:"{teamplayer,punctual}"
。 Array
works in postgres就是这样。
所以您的突变将是:
mutation {
insert_table(objects:{
tags: "{teamplayer,punctual}"
}) {
returning {
tags
}
}
}