我试图在数组字段类型上运行GraphQL筛选器查询,例如在文本ARRAY字段类型上。
在以下示例场景中:
创建表
CREATE TABLE Employee (
firstName text,
lastName text,
tags text[]
);
我们可以通过以下方式之一对文本数组字段进行过滤:
对数组类型具有条件的SELECT语句
SELECT * FROM Employee WHERE tags @> ARRAY['teamplayer']::varchar[]
这在PostGres中也可以隐式地使用。
在Postgraphile GraphQL上,我们可以查询上表,如下所示:
查询
{
allEmployees(filter: {tags: {contains: "teamplayer"}}) {
nodes {
firstName
lastName
tags
}
}
}
结果将是:
回答
{
"data": {
"allEmployees": {
"nodes": [
{
firstName: 'Russell'
lastName: 'Dodds'
tags: ['teamplayer', 'punctual']
},
{
firstName: 'Emma'
lastName: 'Samsin'
tags: ['teamplayer']
}
]
}
}
}
有人能给我一些参考或建议,如何在Hasura中获得类似的数组字段类型的结果吗?
我认为您不能在Hasura控制台中直接使用数组。您应该改用jsonb
。它更合适,因为您可以使用\u append
,\u prepend
,\u delete\u key
。。。
但似乎您可以将Array
与hasura一起使用。如果您的模式来自外部服务,那么数组的输入应该是文本。对于类型为tags[]
的列,输入值必须是如下字符串:“{teamplayer,守时}”
。这就是Array
在postgres中的工作方式。
所以你的突变会是:
mutation {
insert_table(objects:{
tags: "{teamplayer,punctual}"
}) {
returning {
tags
}
}
}
示例文档 索引定义 内部无源过滤的响应良好。 响应包含嵌套属性的所有属性。即开始时间、结束时间和文本行。如何在响应中仅返回endtime和startTime? 查询失败 错误HTTP/1.1 400错误请求内容类型:application/json;字符集=UTF-8内容长度:265 {"错误":{"root_cause":[{"type":"illegal_argument_exception"
最近我开始研究GraphQL,我能够在平面模式中插入数据,没有任何问题,但是当涉及到数据数组时,我会遇到如下错误 我正在用postman测试我的查询,我的变异查询是 这是我的事件模式: 猫鼬模式: 突变类型:
Hasura GraphQL Engine 是一个超快的 GraphQL 服务器,可以让你基于 Postgres 数据库快速简历 GraphQL API 服务。通过数据库事件实现 webhook triggers ,其 remote schemas 用于构建业务逻辑。 架构:
我有一个自定义的职位类型,这是一个供应商的个人资料页排序。在每一页的末尾,我都有一个产品小部件,它应该显示这个供应商的产品。 所有产品都被分配到供应商特定的类别。因此供应商A的个人资料页面应显示分配给product_catA的所有产品。 相应的产品类别由每个配置文件页面上的acf字段指定。因此,我的自定义筛选查询需要获取指定的产品目录,然后按该类别筛选所有产品。我正在努力研究如何将帖子中的自定义字
我尝试使用函数JSON\u array\u elements()卸载JSON数组,并尝试使用JSON\u array\u length(field\u name)计算数组的元素,但没有成功。我使用的是PostgreSQL 9.4.5。 我想查询元素“name”的结果,这是json类型数组field crew | json[]上保存的数据。
我对meta_query有些情境问题。客户搜索四,但结果包括私人(原始词是私人的)。我想只显示IV(罗马数字)包括后。我的meta_query搜索从标题,子标题和自定义插件的描述。我找到了REGEXP,但我找不到从标题、子标题和描述中找到漫游数字的正确方法。 客户只能找到罗马数字,也可以找到任何单词等。