如何从sequelize nodejs中的关联模型加载没有嵌套对象的属性

问题描述

如何返回数组元素中没有任何嵌套对象的用户对象数组? 一个用户一个角色,一个角色属于多个用户用户和角色之间的一对多关系) 我需要执行这个查询

SELECT users.first_name,users.last_name,users.email,users.status,roles.role
FROM webuser users 
JOIN webuserrole roles ON roles .id= users.role_id;

这是sequelize函数用户 =await webuser.findAll({

            attributes: [
                'first_name','last_name','email','status',],include : [{ model: webuserrole,attributes: ["role"]}]

        });

这是上面函数返回用户数组对象的结果

[
    {
        "first_name": "jack","last_name": "leach","email": "jackleach@gmail.com","status": true,"webuserrole": {
            "role": "admin"
        }
    },{
        "first_name": "ben","last_name": "duck","email": "benduck@gmail.com","status": false,"webuserrole": {
            "role": "admin"
        }
    }
];

这是我期待的结果

[
    {
        "first_name": "jack","role": "admin"
       
    },"role": "admin"
       
    }
]

解决方法

            attributes: [
                'first_name','last_name','email','status',[Sequelize.literal('webuserrole.role'),'role']
            ],include : [{ model: webuserrole,as: 'webuserrole',attributes: []}]

        });