Имеются две модели, определенные при помощи Sequelize: Post и Tag, связанные по типу "много-ко-многим":
Post.belongsToMany(db.Tag, {through: 'post_tag', foreignKey: 'post_id', timestamps: false});
Tag.belongsToMany(db.Post, {through: 'post_tag', foreignKey: 'tag_id',timestamps: false});
Для страницы тега мне нужно получить данные о теге и посты с данным тегом, которые нужно вывести с постраничной навигацией. Т.е. нужно указывать для связанной модели Post атрибуты limit и offset. Пока проблема с limit. Первым делом я попробовал просто указать его внутри include:
Tag.findOne({
where: {url: req.params.url},
include: [{
model : Post,
limit: 10
}]
}).then(function(tag) {
//handling results
});
Получаю ошибку:
Unhandled rejection Error: Only HasMany associations support include.separate
Пробую поменять для Tag belongsToMany на hasMany, снова получаю ошибку:
Error: N:M associations are not supported with hasMany. Use belongsToMany instead
Смотрю документацию про limit внутри include: "only supported with include.separate=true".
Получается замкнутый круг: мне нужно указать limit для связи "many-to-many", но он поддерживается только типом связи, который нельзя использовать для "many-to-many".
Есть ли варианты, как решить данную проблему?