我希望有人可以帮助我。我正在使用Sequelize ORM for express.js,我在2个表之间有一个多对多的关系。
为了简化我的查询,我假装我的表是用户,书籍和UserBooks,其中UserBooks有UserId,BookId和一个额外的列(让我们说它的NoOfTimesRead)。
我想做的是:
user.getBooks({
where: {
"userBooks.NoOfTimesRead": 0
}
});
如果我输入:
user.getBooks();
这可以运行并返回所有书籍,我只是无法通过连接表上的附加列找出如何查询。
我希望这是有道理的,
谢谢你看看!
答案 0 :(得分:2)
使用Belongs-To-Many,您可以根据关系和查询进行查询 选择特定属性。例如,使用findAll with through
User.findAll({
include: [{
model: Project,
through: {
attributes: ['createdAt', 'startedAt', 'finishedAt']
where: {completed: true}
}
}]
});
基本上,您可以使用through
选项和include
您关联的关系。可以找到更多here