如何在 GraphQL 中创建删除突变?

Posted

技术标签:

【中文标题】如何在 GraphQL 中创建删除突变?【英文标题】:How to create a delete mutation in GraphQL? 【发布时间】:2019-01-31 13:55:43 【问题描述】:

堆栈溢出!

一天前,我开始为我学习一门新东西 - GraphQL。 现在我知道如何使用 GraphQL 从数据库中添加和读取对象了。我试图找到问题“如何从数据库中删除对象”的答案。但这不是运气。你能帮我解决这个(对你来说)“难”的问题吗?

感谢您的回答!

【问题讨论】:

【参考方案1】:

我找到了!也许有人需要答案。

使用 Model.findByIdAndDelete(id, options, callback);

我的代码:

deleteImage: 
  type: ImageType,
  args: 
    id:  type: GraphQLID 
  ,
  resolve(parent, args) 
    return Image.findByIdAndDelete(args.id);
  

有效!

【讨论】:

【参考方案2】:

这可能是解决此问题的另一种方法。我正在使用 Graphql 构建一个实时聊天应用程序,当我遇到此解决方案时,我试图让用户有权删除他们的消息。

let messages = []

My definitions:
type Query 
    messages: [Message!]

type Mutation 
    deleteMessage(id:String!):String


My resolvers:
Query: 
    messages: () => messages,
  
Mutation: 
    deleteMessage: (parent, id) => 
     let ID = parseInt(id)
     messages = messages.filter((message) => message.id !== ID);
     return id;


我查询消息并将它们放入名为 messages 的数组中,然后当用户需要时 从前端删除消息操作将消息的 id 发送到服务器 然后我使用上面的过滤方法来删除指定的消息。

【讨论】:

以上是关于如何在 GraphQL 中创建删除突变?的主要内容,如果未能解决你的问题,请参考以下文章

发布 AWS Amplify GraphQL 突变时如何避免在数组中创建重复项

没有参数的 Graphql 突变

React Native、GraphQL、Apollo - 如何创建批量插入突变

如何在 python 函数中编写 graphQL 突变?

在 Django GraphQL 中删除突变

在 Relay 中创建嵌套突变会引发未知字段