![](/img/trans.png)
[英]Sequelize: use field created in sequelize.literal in where clause
[英]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.