ОБНОВЛЕНО :::: Я пытаюсь вернуть список пользователей на основе поискового запроса, который я получаю от клиента. Пользователь имеет много навыков. Я хотел бы вернуть всех пользователей, выполнив поиск термина во всех возможных полях пользователя, включая заголовок умения.Sequelize js query через hasMany relationship
мои таблицы и отношения в файле БД, поэтому вы увидите db.Skill
////// db File
User.belongsToMany(Skill, {through: 'UserSkills', foreignKey: 'mentorId'});
Skill.belongsToMany(User, {through: 'UserSkills', foreignKey: 'skillId'});
////// model file
exports.learnerSearchMentors = function(req, res, term){
db.User.findAll({
where: {
$or: [
{ username : { $like: '%' + term + '%'}},
{ firstname : { $like: '%' + term + '%'}},
{ lastname : { $like: '%' + term + '%'}},
{ email : { $like: '%' + term + '%'}},
{ phone : { $like: '%' + term + '%'}},
{ description : { $like: '%' + term + '%'}},
{'$skills.title$': { $like: '%' + term + '%'}}
]
},
include : [{
model : db.Skill, {through: 'UserSkills'},
as: 'skills'
}]
})
.then(function(mentors){
console.log("line 58: list of found mentors by term");
res.status(200).send(mentors)
})
.catch(function(err){
console.error(err.message);
res.status(500).send(err.message);
});
}
Спасибо Тилекбеков. Мне пришлось изменить отношения сегодня утром на основе User.belongsToMany (Skill, {через: 'UserSkills', foreignKey: 'mentorId'}); Skill.belongsToMany (Пользователь, {через: 'UserSkills', foreignKey: 'skillId'}); поэтому я должен искать название навыка через таблицу соединений – MB060606