【发布时间】:2021-04-16 07:15:03
【问题描述】:
是否可以通过through 为多对多关系的属性包含模型?
假设我有以下模型:
User = sequelize.define('user', {/* attributes */});
Question = sequelize.define('question', {/* attributes */});
Answer = sequelize.define('answer', {/* attributes */});
/* Where */
Question.hasMany(Answer);
Answer.belongsTo(Question);
我想为每个用户保存他对问题的回答。所以我添加了以下关系:
UserQuestionAnswerRel = sequelize.define('usersAnwers', {
user: {/**/},
question: {/**/},
answer: {/**/}
});
User.hasMany(Question, { through: UserQuestionAnswerRel });
现在我想查询一个用户,该用户收到他回答的所有问题以及他给出的答案。但这是如何工作的?不幸的是,这不起作用:
User.findAll({
include: {
model: Question,
through: { include: model.Answer }
}
}).then /* */
请注意:所有这些问答内容只是一个示例。我不可能不使用through 关系。
【问题讨论】:
-
有趣。对不起,我还没有答案。但想知道它是否与我的问题相似。 stackoverflow.com/questions/38714624/…我本质上想访问“通过”模型并过滤“内部”连接中留下的记录
-
你能解释一下为什么你必须使用
through吗?这应该与 Nested eager loading... 直接相关