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 }], 

我可以获取数据,我不会导致这个问题,这是运行错误 在这里输入图像说明

在这里输入图像说明