Sequelize 2多对多的关系

时间:2016-02-19 10:14:51

标签: database sequelize.js

我的视频可以被用户喜欢并由用户评论,因此我需要2个多对多的关联。

用户模型

User.belongsToMany(models.Video,{ through: 'user_like_video' });
User.belongsToMany(models.Video, { through: 'user_comment_video' });

视频模型

Video.belongsToMany(models.User, {through: 'user_like_video'});
Video.belongsToMany(models.User, {through: 'user_comment_video'});

我在DB中生成的架构是:

enter image description here

视频标签之间的多对多关系运行良好我可以使用方法getTags()从视频中检索所有标签但是当你有2个(多对多关系)时如何创建方法?

当我使用user.getVideos()时,我只获得注册的最后一个关系,这是user_comment_video。

1 个答案:

答案 0 :(得分:0)

我终于找到了办法:

Video.belongsToMany(models.User, {through: 'user_like_video', as: 'Like'});
Video.belongsToMany(models.User, {through: 'user_comment_video',as: 'Comment'});

这会暴露方法getLike()和getComment()