Использование 'where' в запросе Sequelize Many-to-Many - PullRequest
0 голосов
/ 08 мая 2020

Только что начал использовать sequelize, как и «где» вы используете, где указывать условие в таблице? У меня есть отношение «принадлежность к множеству», определенное следующим образом:

db.users.belongsToMany(db.groups, {through: "users_groups", foreignKey:"user_id"});
db.groups.belongsToMany(db.users, {through: "users_groups",foreignKey:"group_id"});

1) Я хочу иметь возможность видеть, находится ли пользователь в группе с идентификатором пользователя

2) Я хотите получить все группы и информацию о группах, в которых участвовал пользователь с идентификатором пользователя

где мне поставить «где» в этих случаях?

Я пробовал

Group.findOne({
 through: {where:{id:req.body.group_id}},
 include: [{
  model: User,
  through:{
    where:{id:req.body.user_id}
  }
 }]
}).then(data=>{
 res.send(data);
})

1 Ответ

0 голосов
/ 08 мая 2020
Свойство

through ожидает модель соединения или псевдоним, вы указываете ему where caluse.

const { group_id: groupId, user_id: userId } = req.body;

Group.findOne({
     where: { id: groupId },
     include: [{
      model: User,
      through: 'users_groups',
      where: { id: userId },
     }]
    }).then(data=>{
     res.send(data);
    })

Подробнее читайте здесь

...