Как создать мутацию удаления в GraphQL?

Переполнение стека!

День назад я начал изучать новую для меня вещь — GraphQL. Теперь я знаю, как добавлять и читать объекты из базы данных с помощью GraphQL. Я попытался найти ответ на вопрос "как удалить объект из базы данных". Но это не повезло. Не могли бы вы помочь мне с этим «трудным» (для вас) вопросом?

Спасибо за ваши ответы!


person oles    schedule 25.08.2018    source источник


Ответы (2)


Я нашел это! Может кому нужен ответ.

Используйте Model.findByIdAndDelete(id, options, callback);

Мой код:

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

Оно работает!

person oles    schedule 25.08.2018

Это может быть еще один способ решить эту проблему. Я использую 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, а затем, когда пользователь хочет удалить сообщение из внешнего интерфейса, действие отправляет идентификатор сообщения на сервер, а затем я использую метод фильтра выше, чтобы удалить указанное сообщение.

person RyanK    schedule 11.10.2020