Where子句在三层嵌套包含失败
我有四个modelDBList: AlarmsDB,MonitorSpotDB,MonitorGroupDB,UserDB
这些modelDB有参考清单:
AlarmDB.belongsTo(MonitorSpotDB); MonitorSpotDB.belongsTo(MonitorGroupDB); MonitorGroupDB.hasMany(MonitorSpotDB); UserDB.belongsToMany(MonitorGroupDB, { through: MonitorGroupUserDB}); MonitorGroupDB.belongsToMany(UserDB, { through: MonitorGroupUserDB,});
现在我想获得相关用户的警报,所以我使用sequelize编写代码:
public async getAlarms(limit: number, offset: number, whereQuery: any, whereUser: any): Promise<{ count: number, rows: Alarm[] }> { let alarms = await AlarmDB.findAndCount({ limit: limit, offset: offset, order: [ ["createdAt", "desc"], ], where: whereQuery, include: [ { model: MonitorSpotDB, as: "monitorSpot", attributes: ["id", "name", "monitorGroupId"], required: true, include: [{ model: MonitorGroupDB, as: "monitorGroup", attributes: ["id", "name"], required: true, include: [{ model: UserDB, as: "users", attributes: ["id", "name"], where: whereUser }], }], }, ], }); return alarms; }
但我得到空数组,如果我删除
include: [{ model: UserDB, as: "users", attributes: ["id", "name"], where: whereUser }],
我可以获取数据,我不会导致这个问题,这是运行错误