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

sam*_*m23 3 sequelize.js

我有以下型号:

const Users = sequelize.define('User', {/* ... */})
const Articles = sequelize.define('Articles', {/* ... */})
Run Code Online (Sandbox Code Playgroud)

我在它们之间有如下关联:

Users.hasMany(Articles, { as: 'Post' })
Run Code Online (Sandbox Code Playgroud)

它在文章表中添加了一个外键“userId”。

现在我可以在通过 User 模型查询时急切加载文章:

Users.findOne({ where: { id: 'user_one'}, includes: [{ model: Articles }] })
Run Code Online (Sandbox Code Playgroud)

但是我怎么能做相反的事情,即:

Articles.findAll({ where: { id: 'user_one', includes: [{ model: Users }] }})
Run Code Online (Sandbox Code Playgroud)

ion*_*zer 5

以下是查询它的基本方法,其中与您的类似:

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

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

Users.hasMany(Articles, { foreignKey: 'userID' });
Articles.belongsTo(Users, { foreignKey: 'userID' });
Run Code Online (Sandbox Code Playgroud)