我正在使用Sequelize使用INNER JOINS进行SELECT查询,如下例所示:
let result=await model.findAll({
attributes:[['att1', 'alias1'], ['att2', 'alias2']],
include:[{
model:model1,
attributes:[['att3', 'alias3']],
include:[{
model:model2,
attributes:[['att4', 'alias4']]
}]
}],
limit:50,
raw:true
})
我想获得一个具有以下格式的对象数组:
{
alias1:value1,
alias2:value2,
alias3:value3,
alias4:value4
}
但相反,我得到:
{
alias1:value1,
alias2:value2,
model1.alias3:value3,
model1.model2.id:rowId,
model1.model2.alias4:value4
}
我想知道是否有办法删除“模型” . 属性名称的一部分,如果有人能解释我为什么Sequelize返回'rowId',如果我没有将它包含在属性数组中以及如何避免它,那么我不必迭代数组来获取格式我想要 .
谢谢
2 回答
经过大量的研究,我只想在根级别定义我的
attributes
. 为了实现这一点,你需要使用Sequelize.col()
函数并传递别名Sequelize为表创建的参数通常类似于table1->table2.attribute
. 所以我的例子的工作版本是:您是否仅尝试过根级别的
attribute
: