我的資料庫中有一個followers連接表。

followedByUserId是關注者的用戶,是followingUserId他們關注的用戶。
我正在嘗試撰寫一個sequelize查詢,以查找 中的所有條目followingUserId等于一個 ID,但回傳位于該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'],
],
}]
})
},
uj5u.com熱心網友回復:
如果您想將Follower記錄限制為某個followingUserId值,這意味著您想獲取某個用戶的所有關注者。
這意味著您只需要查詢等于給定用戶 ID 的所有Follower記錄并包括關注的用戶。
假設您有這些關聯:followingUserId
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)
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/463919.html
標籤:javascript sql 续集.js
