Sequelize Model.associations[alias].有其他方法可以获得关联模型吗



我试图弄清楚,如果有一个模型类(而不是实例(,我是否可以获得与各个类的所有相关关联(belongsTo、hasOne、hasMany等(。我发现Model.associations属性没有文档,所以如果可能的话,我想避免使用它。你们知道如何得到这个结果吗?

我的目标是,它只是在查询中传递一个字符串作为模型,并且仍然设置其他属性,如where条件。

这样,效果很好。

Model.findAll({
include:['partner']
})

但如果想做这样的事情:

Model.findAll({
include:[
{
model: 'partner',
where: {id:2}
}
]
})

我需要导入模型,这很好,它也可以。我只想传递一个字符串并在更高的类中进行解析,因为不断导入模型很烦人,而且如果没有这么多条件,就不可能进行动态包含。

如果您想包含模型,而不需要导入它。您可以在关联上定义一个别名。

User.hasMany(models.Tool, { as: 'Instruments'}); // here Intruments is alias to Tool

您还可以通过指定与关联别名匹配的字符串来按别名包括:

User.findAll({ include: 'Instruments' }); // Also works
User.findAll({ include: { association: 'Instruments' } }); // Also works

输出:

[{
"name": "John Doe",
"id": 1,
"Instruments": [{
"name": "Scissor",
"id": 1,
"userId": 1
}]
}]

欲了解更多信息,请阅读此处。

最新更新