sequelize 不包括关联模型数据中的连接表

Eri*_*ell 2 javascript sql postgresql node.js sequelize.js

假设我有 2 个模型,用户和事件。它们被设置为 am:m 关系User.belongsToMany(Event)Event.belongsToMany(User). 这一切都很好,但是当我这样做时User.findAndCountAll({include: [{model: Event}]}),result.rows 的结果 json 看起来像

[
    ...
    {
        userdata...,
        events: [ // included by model relation
        ...included event data...,
        junction_table: { // I dont want this data sent back to client, just above data
            ...data i dont want...
        }
    }
...
]
Run Code Online (Sandbox Code Playgroud)

我想要

[
    {
    userdata...,
    events: [
        { included event data without junction_table }
    ]
    }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法去掉由于某种原因自动包含在每个事件中的junction_table,而无需.mapping 数据并重建它?我宁愿不一直通过网络将我不需要的所有这些数据发送给客户端。我尝试只attributes: []在模型上指定,但它不会消失。

小智 5

根据this SO question,这可以通过指定您不想要“通过”表属性来实现。

在您的情况下,它将是:

User.findAndCountAll({
    include: 
        [{model: Event, through: { attributes: [] }}]
    });
Run Code Online (Sandbox Code Playgroud)