在Node.js中使用Sequelize是否可以定义在检索数据时在数据库中计算的字段?Sequelize包含在数据库中计算的计算字段吗?
我明白我可以add a custom getter to the DAO to calculate things in Node,但只能在已经加载的数据。
我的目标是定义了在该数据库运行,因此可以使用子查询使用其它的数据来计算的计算。
例如,我非常喜欢这样做:
Products = Sequelize.define('Product', {
'productId': {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
'isProductActive': Sequelize.INTEGER,
'productName': Sequelize.STRING,
'productPrice': Sequelize.DECIMAL,
// This is what I don't think Sequelize supports
// but is what I ideally want to do...
'totalSales': {
type: Sequelize.DECIMAL,
subQuery: "SELECT SUM(OD.TotalPrice) FROM OrderDetails OD WHERE OD.productID = Products.productID"
}
};
没有办法做到这一点?
现在我使用Sequelize.query
来运行自定义查询,但后来我失去了Sequelize的所有功能,发现自己重做了Sequelize已经完成的功能。我的另一个选择是运行两个查询 - 一个完全通过Sequelize获取基本数据,另一个只获取计算数据,然后将计算的数据复制到JavaScript中的对象。
你找到一个解决的办法? – Clarkie 2015-10-20 06:45:55
@Clarkie,我能用视图完成它,所以不理想,但工作。 – 2015-10-20 20:14:14