首页 > 解决方案 > 使用 max 和 col 无法使用 Sequelize 映射

问题描述

我正在使用 sequelize 5.21.8,我必须计算列的最小值和最大值,所以我使用fn.minand fn.max

我的映射是这样的

startTime: {
  field:'signaldate',
  type: Sequelize.DATE
} ,

对于该列,我的查询是

    return Signals.findAll({
      attributes:[
        [Sequelize.fn('max', Sequelize.col('signaldate')), 'maxdateallowed'],
        [Sequelize.fn('min', Sequelize.col('signaldate')), 'maxdateallowed']
      ]   
    })

问题是我必须Sequelize.fn('max'在 ,Sequelize.col部分中使用原始列名。查询有效,但映射不流鼻涕。

如果我使用startTime我在映射中设置的,就像这样

    [Sequelize.fn('max', Sequelize.col('startTime')), 'maxdateallowed'],

然后我得到一个错误

SequelizeDatabaseError:“字段列表”中的未知列“startTime”

在这种情况下如何使用映射而不出现错误?

谢谢

标签: mysqlnode.jssequelize.jsmapping

解决方案


您可以使用以下 Git 问题中提到的解决方案作为解决方法,目前还没有永久修复。 https://github.com/sequelize/sequelize/issues/10732

这个问题是通用的,sequalize.col()而不是特定于'max'and'min'的。


推荐阅读