sequelize中的嵌套查询

时间:2018-08-24 12:00:52

标签: mysql node.js sequelize.js

我正在尝试通过nodejs中的sequelize ORM从MySql数据库中查询某些内容。

我的关联看起来像这样:

ResourceModel.belongsTo(models.ModuleM, {
    foreignKey: 'moduleId',
    sourceKey: 'id'
});

ResourceModel.hasMany(models.ResourceItemM, {
    foreignKey: 'resourceId',
    sourceKey: 'id'
});

ResourceModel.hasMany(models.ResourceComponentM, {
    foreignKey: 'resourceId',
    sourceKey: 'id'
});

我正在尝试使用以下方法获取资源的项目类型和模块名称:

ResourceModel.findAll({


limit: 5,
  attributes: [
    ['resource_name', 'RESOURCE NAME'],
    ['res_code', 'RESOURCE CODE']
  ],
  include: [
    {
      model: models.ModuleM,
      attributes: [
        ['module_name', 'MODULE']
      ]
    },
    {
      model: models.ResourceItemM,
      attributes: [
        ['item_type', 'ITEM TYPE']
      ]
    }
  ]
}).then((data)=> {
  console.log('data: ', data);
})
.catch((err)=> {
  console.log('Something went wrong: ', err);
})

现在,当我这样做时,我会收到一条错误消息:Unknown column \'ResourceModel.moduleId\' in \'on clause\'',

当我在没有第二个include对象的情况下执行此操作时,它工作正常,但失败了。知道为什么吗?

0 个答案:

没有答案