nodejs sequelize加载嵌套模型

时间:2017-11-05 16:09:39

标签: node.js sequelize.js

我的错误,问题不完整,用粗体标记所有缺失的文字

我有以下模特:

  • 患者
  • 个人
  • 地址
  • PatientAddress
  • PatientAddress.belongsTo(患者);
  • Patient.belongsTo(个人);
  • PatientAddress.belongsTo(地址);

我试图阅读患者,并希望阅读地址,如下所示:

患者=> PatientAddress =>地址

我还需要阅读患者个人模型

我可以使用包含但不能阅读地址的 PatientAddress,Personal 阅读。我试过这些:

return Patient.findAll({
    limit: limit,
    offset: offset,
    include: [{
        model: [Personal, PatientAddress],
        include: [{
            Address
        }]
    }]
});

return Patient.findAll({
    limit: limit,
    offset: offset,
    include: [{
        model: [Personal, PatientAddress],
        include: [{
            PatientAddress.Address
        }]
    }]
});

return Patient.findAll({
    limit: limit,
    offset: offset,
    include: [Personal, PatientAddress, PatientAddress.Address]
});

要改变什么?

2 个答案:

答案 0 :(得分:1)

你的第一个查询非常接近,试试这个:

return Patient.findAll({
    limit: limit,
    offset: offset,
    include: [
        {
            model: PatientAddress,
            include: [Address]
        }
    ]
});

答案 1 :(得分:1)

PersonalPatient直接相关,但Address属于PatientAddress。因此,您必须将Address - 包含在PatientAddress的包含内,而Personal保留为第一级包含。

return Patient.findAll({
    limit: limit,
    offset: offset,
    include: [
        {
            model: PatientAddress,
            include: [Address]
        },
        {
            model: Personal
        }
    ]
});