微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何从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: []}]

        });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。