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

堆栈溢出!

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

感谢您的回答!

【问题讨论】:

    标签: mongoose graphql express-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 发送到服务器 然后我使用上面的过滤方法来删除指定的消息。

      【讨论】:

        猜你喜欢
        • 2019-08-21
        • 2019-07-26
        • 2018-09-19
        • 2019-11-21
        • 2020-05-30
        • 1970-01-01
        • 2022-08-04
        • 1970-01-01
        • 2021-11-24
        相关资源
        最近更新 更多