使用相同的外键将多个loggingjoin连接表
我有3个模型sequelize数据库。
- 团队 – 主键:编号
- 参与者 – foreignKey引用Team – teamId
- TeamResult- foreignKey引用Team – teamId
每个团队可以有多个参与者,所以在参与者表中可以有多个具有相同teamId的logging。 与团队结果相同的情况。
我正在试图纠正一个查询,在那里我通过以下方式与所有参与者以及与团队相关的团队结果得到一个对象:
{ "id": 1, "teamName": "Awesome Team", //other team attributes.. "participants": [ { "id": 12, "teamId": 1, //other details }, { "id": 13, "teamId": 1, //other details }, ], "teamResults": [ { "id": 22, "teamId": 1, //other details }, { "id": 13, "teamId": 1, //other details } ] }
我写了下面的陈述,但是我所得到的仅仅是参与者和导师的第一个,而不是全部:
models.Team.find({ where: { id: req.params.teamId }, include: [ {model: models.Participant, required: true}, {model: models.TeamResult, required: true} ] }).then(function(team){/* handle team object here */})
为了获得所需的结果,我需要做些什么改变?
解决它自己。 犯了一个愚蠢的错误。 而不是hasMany
协会,我在团队的协会使用hasOne
。 现在修好了