是否可以在 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
字段就足够了。之后可以删除字段解析器(以及另一个/旧表(。