首页 > 解决方案 > Sequelize 通过另一个多个关联项查询所有关联项

问题描述

我的模型看起来像这样:

用户属于许多类别

帖子属于许多类别

通过 UserCategories 和 PostCategories 的联合表

如何选择与用户具有相同类别的所有帖子(对于与用户相关的所有类别)。

标签: javascriptnode.jssequelize.js

解决方案


获取用户的所有类别。

const userCategory =  await UserCategory.findAll({
    where: {
        userId: 1,
    },
    raw: true,
});

获取用户类别的所有帖子。

const posts = await PostCategory.findAll({
    include: [
        {
            model: Post,
            required: true,
        },
        {
            model: Category,
            required: true,
            include: {
                model: UserCategory,
                required: true,
                include: {
                    model: User,
                    required: true,
                    where: {
                        id: userCategory.map(item => item.categoryId),
                    },
                },
            },
        },
    ],
});

推荐阅读