Sequelize,用于在belongsToMany关联的连接模型上进行过滤的问题

Sequelize文档build议您可以在选项对象上使用以下参数来过滤连接表属性上的查询: [options.include[].through.where]

我试图在下面的代码中使用这个公式,发现过滤不起作用。

模型用户和模型networking通过连接表networking附属关联,其具有附加属性(布尔)“确认”。 我似乎无法写一个查询,只返回与用户相关的确认networking。

我的代码摘录如下。

 const network_affiliations = db.define('network_affiliations', { networkEmail: { type: Sequelize.STRING }, confirmed: { type: Sequelize.BOOLEAN } }, { freezeTableName: true, defaultScope: { where: { confirmed: true } }, }); // User belongs to many Networks and Networks belong to many Users (join table) User.belongsToMany(Network, { through: network_affiliations }); Network.belongsToMany(User, { through: network_affiliations }); //querying to find one user, including their confirmed networks User.findOne({ where: { email: req.body.email }, include: [{ model: Network, through: { network_affiliations: { where: { confirmed: true } } } }] }) 

我期望这个查询返回一个用户实例及其关联的networking – 但只有networking确认:true。 相反,我得到的所有networking与用户相关联(包括确认:错误和确认:未定义)。

正如你可以在上面的代码中看到的,我尝试为连接表({confirmed:true})设置一个defaultScope。 这似乎也没有做任何事情。

我也尝试了一个User.findAll查询,否则它是相同的,这也不起作用。

我错过了什么,或者Sequelize只是不在这里工作?

续集版本:“^ 3.30.4”