【问题标题】:nodejs sequelize loading nested modelsnodejs续集加载嵌套模型
【发布时间】:2018-04-17 20:01:48
【问题描述】:

我的错误,问题不完整,将所有缺失的文本标记为粗体

我有以下型号:

  • 病人
  • 个人
  • 地址
  • 患者地址

  • PatientAddress.belongsTo(患者);
  • Patient.belongsTo(Personal);
  • PatientAddress.belongsTo(Address);

我正在尝试读取患者并想读取地址,如下所示:

患者 => 患者地址 => 地址

我还需要阅读 Personal model with Patient

我可以使用 include 读取 PatientAddress, Personal,但无法读取 Address。我试过这些:

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]
});

要改变什么?

【问题讨论】:

标签: node.js sequelize.js


【解决方案1】:

PersonalPatient 直接相关,但Address 属于PatientAddress。因此,您必须将Address-include 放置在PatientAddress 的包含中,而Personal 仍然是一级包含。

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

【讨论】:

  • 非常感谢 simon.ro,这就是我想要的 :)
【解决方案2】:

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

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

【讨论】:

  • 是的,这行得通,我更新了问题中缺少的部分,我还需要阅读个人模型
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 2023-04-07
  • 2018-11-07
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
  • 2016-05-02
相关资源
最近更新 更多