Как отфильтровать трехсторонние отношения «многие ко многим» в graphql и sequelize? - PullRequest
1 голос
/ 24 сентября 2019

Я установил сервер GraphQL Apollo с экспресс-и sequelize-typcript для бэкэнда.У меня есть трехстороннее отношение * ко многим между следующими таблицами / моделями:

Action{
    id: Int
    name: String
    participants:[Participant]
    participanttypes: [ParticipantType]
}
Participant{
    id: Int
    displayname: String
    actions: [Action]
    participanttypes: [ParticipantType]
}
ParticipantType{
   id: Int
   description: String
   actions: [Action]
   participants: [Participant]
}

Все три соединены вместе, используя четвертую модель

ActionParticipants{
   id: Int
   action: Int
   participant: Int
   participanttype: Int
}

У меня проблемы с фильтрацией вышеуказанных структур данных с использованием GraphQL.Например, я хочу получить действие, затем участников этого действия, а затем описание ParticipantType каждого участника в действии.Например, с помощью запроса getAction (id: 1), который возвращает первое действие

getAction(id:1){
  name
  participants{
    displayName
    participanttypes{
      description
    }
  }
}

. С помощью вышеуказанного запроса я получу имя действия, затем массив участников [имя] для этого действия инаконец, все описания типов участников для каждого участника.

Однако я хочу отфильтровать тип участника только для участников (участников) этого действия.

...