nodejs续集加载嵌套模型

Posted

技术标签:

【中文标题】nodejs续集加载嵌套模型【英文标题】:nodejs sequelize loading nested models 【发布时间】: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]
);

要改变什么?

【问题讨论】:

Nested relations with Sequelize的可能重复 【参考方案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]
        
    ]
);

【讨论】:

是的,这行得通,我更新了问题中缺少的部分,我还需要阅读个人模型

以上是关于nodejs续集加载嵌套模型的主要内容,如果未能解决你的问题,请参考以下文章

在 NodeJS 中续集:内部 JOIN 实现失败

续集查询nodejs

Nodejs续集批量更新

NODEJS - 执行 INNER JOIN 续集

如何防止nodejs中的sql注入和续集? [关闭]

续集在关联模型上的位置