【已解决】sequelize关联查询问题请教
有一个通知表Notification,里面有两个user对象,一个是通知发出者user, 一个是通知接收者 targetUser, 这两个字段都关联着User表,查询方法如下
model
notification_model.belongsTo(user_model, { foreignKey: 'user' });
notification_model.belongsTo(user_model, { foreignKey: 'targetUser' });
service
notification_model.findAll({
include: [ { model: user_model } ],
where: { is_read: false }
});
这样查出来的结果只有user对象有数据,targetUser是undefined,请教大佬解惑
1 回复
我自己解决了,在定义model的时候加一个别名
notification_model.belongsTo(user_model, { foreignKey: 'userId', as: 'User' });
notification_model.belongsTo(user_model, { foreignKey: 'targetUserId', as: 'targetUser' });
查的时候也指定一下别名
notification_model.findAll({
include: [ { model: user_model, as: 'User' }, { model: user_model, as: 'targetUser' } ],
where: { is_read: false }
});
这样查出来的结果里就有两个user对象的内容了