Tengo una tabla de unión de followers en mi base de datos.
followedByUserId es el usuario que es el seguidor, followingUserId es el usuario al que siguen.
Estoy tratando de escribir una consulta de sequelize que encuentre todas las entradas en el followingUserId ID de usuario que son iguales a una ID pero devuelve los usuarios que están sentados en la columna de followedByUserId por ID de usuario. ¿Puedo lograr esto?
CONSULTA
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'], ], }] }) },Si desea limitar los registros de Follower por un determinado valor de ID de usuario followingUserId , eso significa que desea obtener todos los seguidores de un determinado usuario.
Eso significa que solo necesita consultar todos los registros de Follower donde el followingUserId ID de usuario es igual a una identificación de usuario determinada e incluir a los usuarios seguidos.
Suponiendo que tiene estas asociaciones:
Follower.belongsTo(User, { foreignKey: 'followingUserId', as: 'FollowingUser' }); Follower.belongsTo(User, { foreignKey: 'followedByUserId', as: 'FollowedByUser' });necesitas una consulta como esta:
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) },