繁体   English   中英

sequelize.literal 返回原属性名称和重命名后的属性

[英]sequelize.literal return both the origin attribute name and the attribute after renaming

我想在执行join后重命名属性,我尝试在sequelize.literal中使用 sequelize.literal 但它返回原始名称和修改后的名称。 如何从结果中删除原点名称?

const result = await User.findAll({
  attributes: [
    'name',
    'id',
    [Sequelize.literal('Company.name'), 'companyName'],
    [Sequelize.literal('Employee.type'), 'employeeType'],
  ],
  include: [
    { model: Company, attributes: ['name'], required: false },
    { model: Employee, attributes: ['type'], required: true },,
  ],
  raw: true,
});

结果:

...
"companyName": "Test",
"employeeType": "Junior",
"Company.name": "Test",
"Employee.type": "Junior",

预期结果:

...
"companyName": "Test",
"employeeType": "Junior",

我刚刚找到了这个问题的解决方案,但我对其他想法持开放态度

这就是我所做的,它对我很有效。

const result = await User.findAll({
  attributes: [
    'name',
    'id',
    'Company.name',
    [Sequelize.literal('`Company`.`name`'), 'companyName'],
    'Employee.type',
    [Sequelize.literal('`Employee`.`type`'), 'employeeType'],
  ],
  include: [
    { model: Company, attributes: [], required: false },
    { model: Employee, attributes: [], required: true },,
  ],
  raw: true,
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM