Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Sequelize Find belongsToMany Association


Você precisa definir o alias as também no belongsToMany Associação
models.Person.belongsToMany(models.Course, { as: 'CourseEnrolls', through: { model: Enrollment }, foreignKey: 'StudentEnrollId'});
models.Course.belongsToMany(models.Person, { as: 'StudentEnrolls', through: { model: Enrollment }, foreignKey: 'CourseEnrollId'});

Agora você poderá consultar Course com todos os seus alunos e vice-versa
models.Course.findByPrimary(1, {
    include: [
        {
            model: models.Person,
            as: 'StudentEnrolls'
        }
    ]
}).then(course => {
    // course.StudentEnrolls => array of Person instances (students of given course)
});

Você também pode usar get/set Associations métodos para recuperar ou definir objetos associados
// assuming that course is an instance of Course model
course.getStudentEnrolls().then(students => {
    // here you get all students of given course
});