使用相同的外键将多个loggingjoin连接表

我有3个模型sequelize数据库。

  1. 团队 – 主键:编号
  2. 参与者 – foreignKey引用Team – teamId
  3. 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 */}) 

为了获得所需的结果,我需要做些什么改变?

  • 使用SequelizeJS查找或创build
  • sequelize.js嵌套插入
  • 将外键作为复合主键encryption
  • mysql在nodejs中search子节点和父节点表字段
  • 如何通过NodeJS Sequelize中的查询来统计组
  • 如何连接节点Sequelize到亚马逊RDS MySQL与多可用区
  • NodeJS Sequelize - 多个所有权
  • Sequelize:需要vs导入
  • 解决它自己。 犯了一个愚蠢的错误。 而不是hasMany协会,我在团队的协会使用hasOne 。 现在修好了