如何使用 GraphQL 更新数据

How to update data with GraphQL

我正在学习graphql

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

但是如何修改现有数据?

我在这里有点迷路...

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

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

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

  1. 编写表示语义动作的突变 - markTodoCompletedupdateTodoText
  2. 编写一个仅设置传递给它的任何属性的通用突变,您可以将其命名为 updateTodo

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

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