首页 > 解决方案 > 续集模型中两列之间的乘法

问题描述

如何将表的两列(数量 * 单位)乘以 sequelize 的 findAll

Products.findAll({ 
    attributes: 
    [
        'id',    
        'Product', 
        'Quantity', 
        'Unit'
    ]
});

标签: mysqlnode.jsmodelsequelize.js

解决方案


您可以使用sequelize.literal来计算一些 SQL 表达式(子查询、数学计算等):

Products.findAll({ 
    attributes: 
    [
        'id',    
        'Product', 
        'Quantity', 
        'Unit',
        [sequelize.literal('(Quantity*Unit)'), 'Cost']
    ]
});

要访问包括在 sequelize.literal 中计算的所有属性,只需映射调用get({ plain: true })的结果。

const plainProductObjects = products.map(x => x.get({ plain: true })

推荐阅读