通过中间模型获得热切的加载

时间:2016-07-26 23:01:12

标签: node.js sequelize.js eager-loading

我有3个型号:

ModelA,ModelB和ModelC

  • ModelA belongsToMany ModelB(n:m)
  • ModelB belongsToMany ModelA(m:n)
  • ModelB属于ModelC(n:1)
  • ModelC有很多ModelB(1:n)

我需要使用它的所有ModelC(通过ModelB)获得ModelA

我相信是这样的,但是我不能让它工作,当创建关联through续集创建奇怪的外国人和关于这个主题的Sequelize Docs对我的口味非常不完整

ModelA.findOne({
  where: ...,
  include: [
    {
      model: ModelC,
      through: ...
    }
  ]
});

编辑:我将所有实体都更改为A,B,C型,因为这是关于Sequelize API的问题/问题;不是关于数据库/模型设计

1 个答案:

答案 0 :(得分:0)

您的User模型与您的Company模型没有直接关系,但您可以使用嵌套的包含获得CompanyRole

User.findOne({
  where: ...,
  include: [
    {
      model: Role,
      include: [
         { 
            model: Company, 
            ...
         }
      ]
    }
  ]
});