Sequelize:ManyToMany 在过滤关联模型属性后包含所有关联模型

时间:2021-02-09 08:42:41

标签: javascript node.js orm sequelize.js model-associations

我已经很久没有使用 ORM 和数据库了。对于个人项目,我使用 node.js 下的 sequelize 以特定方式获取数据。

我有两个相关的模型:Country & Race(数据库表名称:Countrys & Races)。

Country.init({
    id: Sequelize.UUID,
    code: Sequelize.STRING,
    countryName: Sequelize.STRING
})

Race.init({
    id: Sequelize.UUID,
    originalName: Sequelize.STRING,
    website: Sequelize.STRING,
})
Country.belongsToMany(Race, {through: CountryRace})
Race.belongsToMany(Country, {through: CountryRace})

我正在尝试获取每个种族(以及每个相关国家/地区),其中至少有一个国家/地区与参数中给出的给定代码相对应。

我试过使用:

Race.findAll({
    include: {
        model: Country,
        where: {
            code: req.params.countryCode
        }
    }
})

但是这个解决方案正在返回预期的比赛,但我只是选择了国家,或者有些比赛可以有多个国家! 我正在使用 sequelize 在单个 SQL 查询中寻找一种快速而干净的方法。我可以分两步完成,找到每个 RaceId,然后获取每个相关模型。但我很确定可以避免查询过多。

提前致谢!

0 个答案:

没有答案
相关问题