【问题标题】:How to load attributes without nested object from associated models in sequelize nodejs如何在续集nodejs中从关联模型中加载没有嵌套对象的属性
【发布时间】:2021-09-24 22:12:44
【问题描述】:

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

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;

这是sequlize函数 让用户 =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",
        "last_name": "leach",
        "email": "jackleach@gmail.com",
        "status": true,
        "role": "admin"
       
    },
    {
        "first_name": "ben",
        "last_name": "duck",
        "email": "benduck@gmail.com",
        "status": false,
        "role": "admin"
       
    }
]

【问题讨论】:

    标签: mysql node.js sequelize.js model-associations associative


    【解决方案1】:
                attributes: [
                    'first_name',
                    'last_name',
                    'email',
                    'status',
                    [Sequelize.literal('webuserrole.role'), 'role']
                ],
                include : [{ model: webuserrole, as: 'webuserrole', attributes: []}]
    
            });
    

    【讨论】:

      猜你喜欢
      • 2018-04-17
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 1970-01-01
      • 2018-11-14
      相关资源
      最近更新 更多