【已解决】sequelize关联查询问题请教
发布于 5 年前 作者 tomoya92 3597 次浏览 来自 问答

有一个通知表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对象的内容了

回到顶部