防止 Sequelize Join 返回 include table 的主键

Prevent Sequelize Join from returning primary key of include table

我有一个 sequelize 查询,它呈现正确的 SQL 语句,除了它将 return 加入的 table 的主键。由于此查询使用 Group By 附加字段是 unacceptable 但我不确定如何删除它。

userDB.tblUsers.belongsTo(userDB.tblSMSSent, { foreignKey: 'collector', targetKey: 'user' });
    userDB.tblSMSSent.hasMany(userDB.tblUsers);

    let users = await userDB.tblUsers.findAll({
        attributes: ['collector', 'tblUsers.id'],
        include: {
            model: userDB.tblSMSSent,
            as: 'tblSMSSent',
            attributes: [[sequelize.fn('COUNT', 'tblSMSSent.id'), 'numMessages']]
        },
        group: ['tblUsers.collector', 'tblUsers.id'],
        logging: console.log
    })

渲染出来的SQL是这样的:

SELECT 
    [tblUsers].[collector], 
    [tblUsers].[id], 
    [tblSMSSent].[id] AS [tblSMSSent.id], 
    COUNT(N'tblSMSSent.id') AS [tblSMSSent.numMessages] 
FROM [dbo].[tblUsers] AS [tblUsers] LEFT OUTER JOIN [dbo].[tblSMSSent] AS [tblSMSSent] ON [tblUsers].[collector] = [tblSMSSent].[user] 
GROUP BY [tblUsers].[collector], [tblUsers].[id];

我需要这个不包含 tblSMSSent.id 的查询。我曾尝试在包含属性中使用 exclude: tblSMSSent.id,如 中所述,但也没有成功。我如何才能从我的查询中正确排除此列?

在发送到 sequelize 的 JSON 中添加了 raw:true 标签。这强制仅包含没有主键的必填字段。