所以我在查找我正在寻找的查询结果时遇到了一些麻烦 . 就我的模特而言

models.UserRole = sequelize.define('userrole', {
    name: {
        type: Sequelize.STRING,
        primaryKey: true
    },

    permissions: {
        type: Sequelize.ARRAY(Sequelize.STRING),
        defaultValue: []
    }
});

models.User = sequelize.define('user', {
    id: {
        type: Sequelize.UUID,
        defaultValue: Sequelize.UUIDV4,
        primaryKey: true
    },
    ...
});

models.User.belongsTo(models.UserRole, {foreignKey: 'role'});

而且我使用foreignKey而不是因为我希望字段完全被称为 role 而不是Sequelize将其更改为( roleName ) .

无论如何,我现在正在尝试查询并包含权限以及所选用户,因此我使用

models.User.findById(id, {
        attributes: ['id','role'],
        include: [{
            model: models.UserRole,
            attributes: ['name', 'permissions']
        }]
    })

它可以工作,但它会在字段 userrole 上检索它们,看起来像这样

{"id":"id-here","role":"admin","userrole":{"name":"admin", "permissions":["p1","p2",..]}}

最后,我的问题是我如何制作它以便从UserRole模型检索的东西在关键的“角色”下检索?所以它看起来像

{"id":"id-here","role":{"name":"admin", "permissions":["p1","p2",..]}}