Sequelize findAll users with Id but return users from different column
Sequelize findAll users with Id but return users from different column
我的数据库中有一个 followers
连接 table。
followedByUserId
是被关注的用户,followingUserId
是他们关注的用户。
我正在尝试编写一个 sequelize
查询来查找 followingUserId
中等于 ID 的所有条目,但 returns 坐在 followedByUserId
列。我能做到吗?
查询
getAllUserFollowing: (_, args) => {
return DB.models.user.findAll({ // if args.id === 1, return user => 2
include: [{
model: DB.models.follower,
where: {
followingUserId: args.id,
},
order: [
['createdAt', 'DESC'],
],
}]
})
},
如果您想通过某个 followingUserId
值限制 Follower
条记录,这意味着您希望获得某个用户的所有关注者。
这意味着您只需要查询所有 Follower
记录,其中 followingUserId
等于给定的用户 ID 并包括关注的用户。
假设您有这些关联:
Follower.belongsTo(User, { foreignKey: 'followingUserId', as: 'FollowingUser' });
Follower.belongsTo(User, { foreignKey: 'followedByUserId', as: 'FollowedByUser' });
您需要这样的查询:
getAllUserFollowing: async (_, args) => {
return (await DB.models.Follower.findAll({ // if args.id === 1, return user => 2
where: {
followingUserId: args.id,
},
include: [{
model: DB.models.user,
as: 'FollowedByUser',
}],
order: [
['FollowedByUser', 'createdAt', 'DESC'],
],
})).map(x => x.FollowedByUser)
},
我的数据库中有一个 followers
连接 table。
followedByUserId
是被关注的用户,followingUserId
是他们关注的用户。
我正在尝试编写一个 sequelize
查询来查找 followingUserId
中等于 ID 的所有条目,但 returns 坐在 followedByUserId
列。我能做到吗?
查询
getAllUserFollowing: (_, args) => {
return DB.models.user.findAll({ // if args.id === 1, return user => 2
include: [{
model: DB.models.follower,
where: {
followingUserId: args.id,
},
order: [
['createdAt', 'DESC'],
],
}]
})
},
如果您想通过某个 followingUserId
值限制 Follower
条记录,这意味着您希望获得某个用户的所有关注者。
这意味着您只需要查询所有 Follower
记录,其中 followingUserId
等于给定的用户 ID 并包括关注的用户。
假设您有这些关联:
Follower.belongsTo(User, { foreignKey: 'followingUserId', as: 'FollowingUser' });
Follower.belongsTo(User, { foreignKey: 'followedByUserId', as: 'FollowedByUser' });
您需要这样的查询:
getAllUserFollowing: async (_, args) => {
return (await DB.models.Follower.findAll({ // if args.id === 1, return user => 2
where: {
followingUserId: args.id,
},
include: [{
model: DB.models.user,
as: 'FollowedByUser',
}],
order: [
['FollowedByUser', 'createdAt', 'DESC'],
],
})).map(x => x.FollowedByUser)
},