如何在 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 突变时如何避免在数组中创建重复项