Я пытаюсь получить данные из таблиц сопоставления с помощью Sequelize -
- Родительская таблица [Основная таблица]
- Таблица школ [содержит всю информацию о школе]
- ParentSchool Table [таблица перекрестных ссылок]
Я пытаюсь отфильтровать данные, выбрав название школы. Когда я делаю это в ответ, мне нужен результат json для продолжения FINDALL, чтобы вернуть всех родителей, связанных с этой школой.
{
//includes the cross-reference table to join the schools with parents
include: [
{ model: db.parentSchools },
{
model: db.schools, as: "schools",
where: {
[Op.eq]: [{ name: req.params.school }]
}
}
]
}
).then(function (results) {
res.json(results);
console.log("parents for a school ", results);
})
ПОСЛЕДОВАТЕЛЬНОСТЬ СИНТАКСА АССОЦИАЦИИ
Parent.belongsToMany(models.schools, {
as: "schools",
through: "parentSchools",
foreignKey: "parentId"
});
};
МОДЕЛЬ ДВА АССОЦИАЦИИ
// a school belongs to many parents
School.belongsToMany(models.parents, {
as: "parents",
// cross-reference table because a parent can have many schools as well
through: "parentSchools",
foreignKey: "schoolId"
});
Возвращает объект json со значениями для введенного названия школы.