带有参数子查询的 GraphQL 突变 - update/convert 写入数据库?

GraphQL mutation with subquery for parameter - update/convert DB on write?

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

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

其中 genders ( name: { eq: "mail" } ) { id } 将 return 正好是一个结果值

GraphQL 允许您:

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

你当然可以写一个createPerson 突变解析器到:

  • 向另一个 table 询问额外的数据(如果缺少 arg);
  • 写入数据库;

但不影响(不是suitable)现有记录

您还可以使用 读取解析器 来使用字段解析器更新记录中缺失的字段 - 一种 'eventual consistency'.

编写人员解析器以读取人员记录和附加 person.gender 字段解析器以获取缺少的 gender 值的值。第二个可用于更新 'main' 人 [DB table] 记录:

  • 从其他人那里读取一个缺失值table;
  • 在 'main' table;
  • 上的人员记录中写入一个值
  • return 值。

下一次人解析器将立即读取gender值(来自'main'人table),[附加]根本不会调用字段解析器

这种技术可以用来转换DB数据而无需编写SQL/DB特定代码(不同syntax/types问题,在更复杂的逻辑上更安全)-它是足以阅读 each/all 人的 gender 字段。之后可以删除字段解析器(和 other/old table)。