我正在使用Sequelize4.37.10,它工作得很好。不幸的是,在我看来,文档并不完美。所以它缺乏一点对潜在可能性的描述。
我有以下问题:
我这样定义我的表:
const Department = db.define('department', {
name: {type: Sequelize.STRING, allowNull: false},
shortName: {type: Sequelize.STRING, allowNull: false}
})
const Employee = db.define('employee', {
title: {type: Sequelize.STRING},
name: {type: Sequelize.STRING, allowNull: false},
surname: {type: Sequelize.STRING, allowNull: false},
.
.
role: {type: Sequelize.STRING}
})
然后我将这些表关联如下:
const EmployeeDepartments = db.define('employeeDepartments', {
manager: {type: Sequelize.BOOLEAN, allowNull: false}
})
Department.belongsToMany(Employee, {through: EmployeeDepartments})
Employee.belongsToMany(Department, {through: EmployeeDepartments})
现在,我想让所有部门员工都将manager字段设置为true。创建没有问题,但是选择对我来说是个问题。
我尝试了以下方法但没有成功:
department.getEmployees({where: {manager: true}})
我也想过范围,但我不知道如何设计适当。
你能帮我吗?
3条答案
按热度按时间wgx48brx1#
我自己找了一会儿才找到一个非常简单的答案。
使用时
belongsToMany
sequelize确实使用联接从第二个表中获取数据(我知道这一点)。我可以选择使用以下语法:
我在google上的一个页面上发现了这个,但不幸的是我丢失了url。也许这对有类似问题的人有帮助。
mgdq6dx12#
有趣的是,我只是在寻找完全相同的东西,唯一的结果是你几个小时前的问题。。。
我现在已经解决了,你需要的是:
你也可以让公司的所有员工
department
其中你只有id
:sgtfey8w3#
用这个修改这个代码。
您只需在查询中添加include