Sequelize:如何在hasMany中反转查询?

时间:2018-04-02 14:39:38

标签: sequelize.js

我有以下型号:

const Users = sequelize.define('User', {/* ... */})
const Articles = sequelize.define('Articles', {/* ... */})

我之间有关联,如下:

Users.hasMany(Articles, { as: 'Post' })

在Articles表中添加了foreignKey'userId'。

现在,我可以通过用户模型查询时急切地加载文章:

Users.findOne({ where: { id: 'user_one'}, includes: [{ model: Articles }] })

但我怎么能这样做:

Articles.findAll({ where: { id: 'user_one', includes: [{ model: Users }] }})

2 个答案:

答案 0 :(得分:4)

这里基本上是如何查询它,它与你的相似:

Articles.findAll({
    where: { userID: 'user_one' },
    include: [{
        model: Users,
        required: true
    }]
})

但我的表关系有以下几点:

Users.hasMany(Articles, { foreignKey: 'userID' });
Articles.belongsTo(Users, { foreignKey: 'userID' });

答案 1 :(得分:0)

如果include

,请使用includes
Articles.findAll({
    include: [{
        model: Users,
        where: { id: 'user_one' }
    }]
})

在上文中,idArticles表中的主键。

Here is a good discussion for that