【问题标题】:Change Alias of Distinct for sequelize为 sequelize 更改 Distinct 的别名
【发布时间】:2019-02-12 16:21:46
【问题描述】:

我在我的代码上使用以下查询

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 } ]

【问题讨论】:

    标签: mysql node.js sequelize.js


    【解决方案1】:

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

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

    这里我们使用Sequelize.fn()cid 上创建DISTINCT,并使用数组属性表示法将其别名为id。有关此here 的更多信息。

    【讨论】:

      猜你喜欢
      • 2018-09-27
      • 2015-07-01
      • 1970-01-01
      • 2018-10-01
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 2016-10-06
      相关资源
      最近更新 更多