Javascript Sequelize-两个ID上的双重连接表
如果我有一个“Users”表和一个“followers”表(“followers”有UserId和followdid,两者都指“Users”表上的用户) “followers”基本上是指一个用户“跟随”另一个用户 如何设置关联,以便在使用以下模型查询和包含用户模型时,它将包含两列的嵌套信息 例如:Javascript Sequelize-两个ID上的双重连接表,javascript,node.js,postgresql,sequelize.js,Javascript,Node.js,Postgresql,Sequelize.js,如果我有一个“Users”表和一个“followers”表(“followers”有UserId和followdid,两者都指“Users”表上的用户) “followers”基本上是指一个用户“跟随”另一个用户 如何设置关联,以便在使用以下模型查询和包含用户模型时,它将包含两列的嵌套信息 例如: Users | id | name | email | etc | Followings | id | UserId | FollowedId | UserId和followdid都与“users
Users
| id | name | email | etc |
Followings
| id | UserId | FollowedId |
UserId和followdid都与“users”表上的用户关联
我试过这个:
User.hasMany(Following);
Following.belongsTo(User, {foreignKey: 'FollowedId'});
Following.belongsTo(User, {foreignKey: 'UserId'});
但当我使用:
Followings.find({
include: User
})
它只会在UserId上嵌套信息,而不会在followdid用户上嵌套信息
如果这让人困惑,请提问,谢谢
编辑:使用PostgreSQL我认为,如果你给
的belongsTo
命名,你可以在include中指定关系。比如:
User.hasMany(Following);
Following.belongsTo(User, {foreignKey: 'FollowedId', as: 'Followee'});
Following.belongsTo(User, {foreignKey: 'UserId', as: 'User'});
其中包括:
Followings.find({
include: [
{ model: User, as: 'Followee' },
{ model: User, as: 'User' },
]
})