Как использовать метод groupby для получения конкретных данных таблицы с определенным идентификатором в sequelize postgres - PullRequest
0 голосов
/ 07 сентября 2018

у меня три таблицы; 1. билет 2. войти 3. член билет

У меня есть tickedId и memberId (это происходит из таблицы входа в систему) в моей таблице тикеров, я сделал это с помощью метода sequelize include ( для memberId с использованием «as» в таблице входа в систему)

В моем приложении участник может иметь несколько билетов. Мои данные в таблице участника-билета выглядят так

enter image description here

Я хочу взять все билеты участников, например, у участника 1 есть три билета. Я хочу найти эти данные конкретного участника.

Я пишу API, чтобы получить таблицу тикетов:

Мои api.js:

exports.getTicketMemberAll = (req, res) => {
    TicketMember.findAll({
        include: [{
          model: Ticket
        }, {
          model: Login,
          as: 'member',
        }],
      })
      .then(data => {
        res.status(200).send(data)
      })
      .catch(err => {
        res.status(400).send(err.message)
      });
  };

Мой ответ:

[
    {
      id: 1,
      isActive: true,
      ticketId: 1,
      ticket: {
        status: "New",
      }
      memberId: 3,
      member: {
        username: "zen",
      }
    }
    {
      id: 1,
      isActive: true,
      ticketId: 2,
      ticket: {
        status: "New",
      }
      memberId: 3,
      member: {
        username: "zen",
      }
    }
  ]

Мой желаемый результат:

У меня memberId: 3 в двух объектах, поэтому я хочу объединить объекты со связанными билетами.

1 Ответ

0 голосов
/ 07 сентября 2018

Это случай многих со многими ассоциациями, поэтому вы можете использовать эту функцию Sequelize

Ticket.belongsToMany(Member, {through: 'TicketMember'});
Member.belongsToMany(Ticket, {through: 'TicketMember'});

Тогда вы получите доступ к таким методам получения и установки, как этот

ticket.getMembers and member.getTickets

для запроса вы можете использовать

Member.findAll({
  include: [{
    model: Ticket,
  }]
});

Пожалуйста, обратитесь к разделу Ассоциации Принадлежностей ко многим здесь

Это должно сработать, дайте мне знать, если возникнут ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...