Rod*_*Rod 3 javascript node.js sequelize.js
我正在对一个十进制列求和,它以字符串而不是整数的形式返回?
exports.sumMoney = function (id) {
return myModel.findAll({
raw: true,
attributes: [[sequelize.fn('SUM', sequelize.col('moneycol')), 'moneylabel']],
where: { id: id }
}).then(r => r);
}
Run Code Online (Sandbox Code Playgroud)
我不确定您使用的是 MySQL 还是 Postgres,但是将其添加到配置中解决了我在 MySQL 上的问题
dialectOptions: {
decimalNumbers: true
}
Run Code Online (Sandbox Code Playgroud)
小智 5
为了将结果转换为数字,您需要使用 sequelize.cast 函数执行显式转换:
exports.sumMoney = function (id) {
return myModel.findAll({
raw: true,
attributes: [[sequelize.cast(sequelize.fn('SUM', sequelize.col('moneycol')), 'int'), 'moneylabel']],
where: { id: id }
}).then(r => r);
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它没有在 sequelize v4 文档中说明,但 v3 指出:
postgres 需要显式转换。
http://sequelize.readthedocs.io/en/v3/api/sequelize/#fnfn-args-sequelizefn
| 归档时间: |
|
| 查看次数: |
2989 次 |
| 最近记录: |