Javascript 过滤器Sequelize belongtomy get<;协会>;关联表

Javascript 过滤器Sequelize belongtomy get<;协会>;关联表,javascript,mysql,sequelize.js,has-and-belongs-to-many,Javascript,Mysql,Sequelize.js,Has And Belongs To Many,我正在使用Sequelize 4.37.10,它工作得很好。 不幸的是,在我看来,文档并不完美。因此,它缺乏一点对潜在可能性的描述 我有以下问题: 我这样定义我的表: const Department=db.define('Department'){ 名称:{type:Sequelize.STRING,allowNull:false}, shortName:{type:Sequelize.STRING,allowNull:false} }) const Employee=db.define('E

我正在使用Sequelize 4.37.10,它工作得很好。 不幸的是,在我看来,文档并不完美。因此,它缺乏一点对潜在可能性的描述

我有以下问题:

我这样定义我的表:

const Department=db.define('Department'){
名称:{type:Sequelize.STRING,allowNull:false},
shortName:{type:Sequelize.STRING,allowNull:false}
})
const Employee=db.define('Employee'{
标题:{type:Sequelize.STRING},
名称:{type:Sequelize.STRING,allowNull:false},
姓氏:{type:Sequelize.STRING,allowNull:false},
.
.
角色:{type:Sequelize.STRING}
})
然后我将这些表关联如下:

const EmployeeDepartments=db.define('EmployeeDepartments'{
管理器:{type:Sequelize.BOOLEAN,allowNull:false}
})
所属部门(员工,{通过:员工部门})
Employee.belongTomany(部门,{通过:EmployeeDepartments})
现在,我希望将“经理”字段设置为true的所有部门员工。 创建没有问题,但是选择对我来说是个问题

我尝试了以下方法,但没有成功:

department.getEmployees({where:{manager:true}})
我也想到了示波器,但我不知道如何正确设计

你能帮我吗

department.getEmployees({where: {manager: true}})
用此代码更改此代码。

department.getEmployees(      
  include:{
    model: employeedepartments, // your employee departments model name
    {where: {manager: true},      
    required:true, 
  }
})

您只需在查询中添加include即可

有趣的是,我只是在寻找完全相同的内容,唯一的结果就是您几个小时前提出的问题

我现在已经解决了,您需要的是:

department.getEmployees({ through: { where: { manager: true } } })
您还可以获取只有
id的
部门的所有员工

const department = Department.build( { id: departmentId } );
// proceed as above

经过一段时间的搜索,我自己找到了一个非常简单的答案

当使用
belongtomany
Sequelize时,它确实使用连接从第二个表中获取数据(我知道)

我可以选择使用以下语法:

department.getEmployees({where: {'$employeeDepartments.manager$': true}})
我在谷歌上的一个页面上找到了,但不幸的是我丢失了url。
也许这对有类似问题的人有帮助。

很好!遗憾的是,没有通过
选项说明任何有关
的信息。非常感谢。在我看来,通过使用
Department.findById(departmentId)
第二个代码行更容易。这种方法的问题是您碰到了数据库。
build
没有。此外,您可能会遇到这样一个问题,即无法从生成的员工中真正删除关联字段
departmentEmployee
(请参阅此问题:)。我用
employees.forEach(e=>delete e.dataValues['department\u employeen'])解决了这个问题。
include需要一个数组