如何使用GraphQL更新数据

时间:2016-06-19 10:29:53

标签: mongodb graphql

我正在学习graphql。

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

但我如何修改现有数据?

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

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

1 个答案:

答案 0 :(得分:9)

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

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

  1. 编写代表语义行为的突变 - markTodoCompletedupdateTodoText
  2. 写一个通用变异,只设置传递它的任何属性,你可以称之为updateTodo
  3. 我更喜欢第一种方法,因为它更清楚了客户端在调用某个突变时所做的事情。在第二种方法中,您需要小心验证要设置的值,以确保某人无法设置某些无效组合。

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