如何使用GraphQL更新数据

use*_*595 3 mongodb graphql

我正在研究graphql.

我可以通过查询从我的mongo数据库中检索数据,我可以使用突变创建数据.

但我如何修改现有数据呢?

我在这里有点失落......

我必须创建一个新的突变?

stu*_*ilo 9

是的,每个变异都描述了可以对一些数据进行的特定操作.GraphQL与REST不同 - 它没有指定任何标准的CRUD类型操作.

当您编写变异来更新某些数据时,您有两种选择.让我们在具有completed状态和text字段的待办事项的上下文中解释它们:

  1. 编写代表语义动作突变- markTodoCompleted,updateTodoText等等.
  2. 写一个通用变异,只设置传递它的任何属性,你可以调用它updateTodo.

我更喜欢第一种方法,因为当它调用某个突变时,它会更清楚客户端正在做什么.在第二种方法中,您需要小心验证要设置的值,以确保某人无法设置某些无效组合.

简而言之,您需要定义自己的突变以更新数据.

  • 嗯,但是怎么样?如何编辑某个数据对象的一个​​或所有字段,例如具有特定 ID/密钥的字段? (3认同)