mysql - Sequelize 映射不能使用 max 和 col

标签 mysql node.js sequelize.js mapping

我正在使用 sequelize 5.21.8 并且我必须计算列的最小值和最大值,所以我使用 fn.minfn.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: Unknown column 'startTime' in 'field list'



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

谢谢

最佳答案

您可以使用以下 Git 问题中提到的解决方案作为解决方法,目前尚无永久性修复。
https://github.com/sequelize/sequelize/issues/10732
这个问题是 sequalize.col() 的通用问题,而不是 'max''min' 特有的。

关于mysql - Sequelize 映射不能使用 max 和 col,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61911789/

相关文章:

python - Django 按日期分组和每个类别的计数

mysql - 在只有几行的表中索引字符串字段是否有意义

node.js - 对象不存在-Mongodb

node.js - Sequelize 实例方法

python - SQLAlchemy - 同一张表中的父子关系

mysql - 非活跃客户mysql查询优化

node.js - Nodemon 崩溃 :TypeError: Cannot read property '__nodemonRestart' of null

javascript - 将旧函数更新为异步等待

node.js - Sequelize 一张表的多个计数

javascript - 禁用 Sequelize 列返回