我们如何在graphQL中的公共列上进行数据连接。
例如在SQL中:选择t.name和z.address,其中t.id = z.id;
如何通过graphQL查询进行管理。
答案 0 :(得分:3)
这是如何通过GraphQL查询管理的?
简短回答:它不是(托管)。你必须在解析器中写下它。
您的GraphQL架构基本上只是表示节点的类型声明,以及在图表中表示边缘的字段。 GraphQL是查询此图表的语言。在模式的每个边缘,编写一个函数,用于在查询遍历该边时获取数据。此函数称为"解析器",只要它返回有效数据,您就可以在解析器中放入几乎任何代码。这意味着GraphQL完全,绝对与数据库无关。您的解析器负责与您的数据库通信。
因此,当涉及到SQL和连接时,进行查询的关注完全由API开发人员负责。 GraphQL对SQL或连接一无所知,因此这实际上是您必须编写的应用程序的自定义逻辑。事实证明,构建SQL查询来解析GraphQL查询的数据是非常困难的,而不会遇到诸如急切地获取太多数据或者" N + 1"问题
开源社区中的一些工具已经出现,以帮助解决这个问题。以下是我在Node.js空间中推荐的一对:
免责声明:我是Join Monster的共同创作者。