更改别名以续集

时间:2019-02-12 07:30:30

标签: mysql node.js sequelize.js

我正在对我的代码

使用以下查询
await to( mymodel.aggregate('cid', 'DISTINCT', {plain: false,where:{created_by:user.id}}));

控制台上显示的查询是

SELECT DISTINCT(`cid`) AS `DISTINCT` FROM `mymodel` AS `mymodel` WHERE `mymodel`.`created_by` = 7;

我得到的输出是

ids --------------- [ { DISTINCT: 9 }, { DISTINCT: 10 }, { DISTINCT: 11 } ]

我想将别名DISTINCT更改为id。我如何像下面这样

ids --------------- [ { id: 9 }, { id: 10 }, { id: 11 } ]

1 个答案:

答案 0 :(得分:0)

我不认为.aggregate()支持别名字段,但是将其转换为常规查询很简单。

await mymodel.findAll({
    attributes: [ [ Sequelize.fn('DISTINCT', 'cid'), 'id' ] ],
    where: { created_by: user.id }
});

在这里,我们利用Sequelize.fn()DISTINCT上创建cid,并使用array属性符号将其别名为id。有关此here的更多信息。