Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

141
Vistas
Cómo recuperar solo publicaciones de otros usuarios que el usuario está siguiendo usando Sequelize

Estoy tratando de consultar mi tabla de publicaciones para recuperar las publicaciones que sigue el usuario. Este es un patrón popular, así que asumo que hay una manera de hacerlo con Sequelize.

Tengo un modelo de usuario que está asociado a un modelo de publicación.

models.User.hasMany(models.Post, {constraints: false, foreignKey: "UserId", onDelete: 'cascade'});

models.Post.belongsTo(models.User, {foreignKey: "UserId", onDelete: 'cascade'})

El modelo de Usuario está asociado a un modelo de Seguidores (que muestra que el Usuario A sigue al Usuario B)

models.User.hasMany(models.Follower, {foreignKey: "FollowerId", as: "IsFollower"});

models.Follower.belongsTo(models.User, {foreignKey: "FollowerId", as: "IsFollower"});

models.User.hasMany(models.Follower, {foreignKey: "FollowingId", as: "IsFollowing"});

models.Follower.belongsTo(models.User, {foreignKey: "FollowingId", as: "IsFollowing"});

Esencialmente, estoy tratando de buscar publicaciones donde el usuario que creó la publicación es seguido por el usuario que realiza la consulta... como Instagram, Twitter, etc., donde solo ves las publicaciones de las personas a las que sigues.

Gracias de antemano, Harry :)

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Asumiendo que estos son sus modelos usando una relación de muchos a muchos.

Modelo de seguidor:

 module.exports = (sequelize, DataTypes) => { class Follower extends Model { static associate(models) {} }; Follower.init({ userId: DataTypes.INTEGER, followerId: DataTypes.INTEGER }, { sequelize, modelName: 'Follower', updatedAt: false }); return Follower; };

Modelo de usuario:

 class User extends Model { static associate(models) { this.belongsToMany(models.User, { through: models.Follower, as: 'followers', foreignKey: 'userId', otherKey: 'followerId' }); } };

Puede obtener todos los usuarios que un usuario específico sigue de la siguiente manera,

 const userId = 1; // as an example const followedUsers = await models.Follower.findMany({ where: { followerId: userId } });

Para obtener publicaciones cuyo propietario es seguido por el usuario:

 const posts = await models.Posts.findMany({ where: { ["$author.followers.id$"]: userId } });

Suponiendo que el modelo de Post tiene una relación de uno a muchos con User llamado author .

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda