javascript - Sequelize 从外键获取 N:M 关联
问题描述
我有一个架构,其中我有一个资产,它有很多威胁,每个威胁都有很多对策。我想要做的是给定资产的 id 以获取该资产的威胁列表以及每个威胁的列表对策。我怎样才能做到这一点?
我认为我的代码不会提供任何帮助,但无论如何你都可以:
Asset.belongsToMany(Threat, { through: 'asset-threat' });
Threat.belongsToMany(Asset, { through: 'asset-threat' });
Countermeasure.belongsToMany(Threat, { through: 'countermeasure-threat' });
Threat.belongsToMany(Countermeasure, { through: 'countermeasure-threat' });
所有协会的东西都在这里。我让 sequelize 处理与外键无关的所有事情。
编辑
我试图做的事情不起作用,但很好地解释了我想要实现的目标如下:
const asset = await Asset.findOne({ where: { id } });
return await asset.getThreats({
include: Countermeasure
});
解决方案
至少您应该将include
选项值指示为数组:
return await asset.getThreats({
include: [Countermeasure]
});