Hasura 查询的工作方式类似于 SQL 内连接

Arv*_*mar 3 graphql hasura

假设我有以下图形查询来获取用户及其帖子:

query MyQuery {
  users{
    id
    posts {
      id
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

假设我有一个没有任何帖子的用户 A。上面的查询给出的结果类似于 SQL 中的外连接,我会得到用户 A,但有一个空的 posts 数组,因为它没有用户。

如果我只想获取至少拥有一篇帖子的用户,类似于 SQL 中的内部联接为我所做的事情,我该怎么办?

我做了一些挖掘,发现了一些结果,这些结果表明我可以在查询中使用“@cascade”在 graphql 中执行类似的操作。不幸的是,这对我在哈苏拉不起作用。

我该如何在哈苏拉实现这一目标?我可以根据帖子的聚合对父级(“用户”)进行排序,但没有对数组关系的聚合进行过滤的选项,否则我会根据帖子计数 > 0 过滤用户。

Arv*_*mar 6

稍后我从 Hasura 的 github 讨论中收到的答案中发现我可以这样做:

query MyQuery {
  users (where:  { posts: {} }){
    id
    posts {
      id
    }
  }
}
Run Code Online (Sandbox Code Playgroud)