带有参数子查询的 GraphQL 突变 - 写入时更新/转换数据库?



是否可以在 GraphQL 中添加对突变的查找?假设一个输入类型,其中一个属性是另一个查询的结果。

createPerson(name: "Steve", gender: genders ( name: { eq: "mail" } ) { id } )

其中genders ( name: { eq: "mail" } ) { id }将只返回一个结果值

GraphQL 允许你:

  • "得到你想要的";
  • 在写入时操作数据;
  • 自定义读取响应;

当然,您可以编写createPerson突变解析器来:

  • 向另一个表询问其他数据(如果缺少参数(;
  • 写入数据库;

但它不会影响(不适合(现有记录

您还可以使用读取解析程序通过字段解析器更新记录中缺失的字段 - 一种"最终一致性"。

写入人员解析程序以读取人员记录,并附加person.gender字段解析程序以获取缺少gender值的值。第二个可用于更新"主要"人员 [DB 表] 记录:

  • 从其他表中读取缺失值;
  • 在"主"表上的人员记录中写入值;
  • 返回值。

下次人员解析器将立即读取gender值(从"主"人员表中(时,根本不会调用 [附加]字段解析器

这种技术可用于转换数据库数据,而无需编写 SQL/DB 特定代码(不同的语法/类型问题,在更复杂的逻辑上更安全( - 读取每个人/所有人的gender字段就足够了。之后可以删除字段解析器(以及另一个/旧表(。

最新更新