mysql - 使用 max 和 col 无法使用 Sequelize 映射
问题描述
我正在使用 sequelize 5.21.8,我必须计算列的最小值和最大值,所以我使用fn.min
and 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”
在这种情况下如何使用映射而不出现错误?
谢谢
解决方案
您可以使用以下 Git 问题中提到的解决方案作为解决方法,目前还没有永久修复。 https://github.com/sequelize/sequelize/issues/10732
这个问题是通用的,sequalize.col()
而不是特定于'max'
and'min'
的。
推荐阅读
- python - 将 2 个数据框与检查 id 进行比较,列值在其他数据框列中。如果值在那里,则更改相应的列
- node.js - 用 sinon 和 chai 测试函数时的问题
- xcode - XCode 没有编译文件并冻结系统
- firebase - 如何设置 pubsub 以便 firebase 可以通过云功能 pubsub 触发器接收?
- php - 如果 !empty 多行
- python - 对数据框中的一列求和并将结果返回为 int
- javascript - 如何从 php json 获取 jquery 变量
- php - 为什么 php 代码无法使用数据库中的文件和 longblob 上传图像?
- css - Bootstrap 4轮播不适用于AngularJS UI-Bootstrap
- python - 字典用Python中的第一个字母索引文件