0

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

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

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

4

1 回答 1

0

GraphQL 允许您:

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

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

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

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

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

编写人员解析器以读取人员记录和附加person.gender字段解析器以获取缺失值的gender值。第二个可用于更新“主要”人员 [DB 表] 记录:

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

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

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

于 2021-07-27T10:55:12.313 回答