【发布时间】:2014-10-15 19:33:09
【问题描述】:
如何在 Loopback 模型中使用聚合函数?如果我有一个由 mysql 数据库支持的模型,我是否可以让 Model1 与 Model2 具有 hasMany 关系(具有给定的数字属性),并且在 Model1 中有一个属性可以从 Model2 中获取该字段的 SUM?
{ “模型1”:{ “关系”:{ “模型2s”:{ "type": "hasMany", “模型”:“模型 2”, "foreignKey": "model1Id" } }, “特性” : { “全部的” : { “类型”:“数字” [Model2‘金额’字段的总和] } } }, “模型2”:{ “关系”:{ “模型1s”:{ “类型”:“属于”, “模型”:“模型 1”, "foreignKey": "model1Id" } }, “特性” : { “数量” : { “类型”:“数字” } } } }另外,在模型中放置条件的正确方法是什么,以便 getter 返回的值取决于某个表达式?我想从关系中返回一个值(如果存在),否则返回主模型上存在的值。
我试过这个(伪代码):
module.exports = 功能(MyModel){ MyModel.on('附加', function() { var app = MyModel.app; MyModel.getter['total'] = function() { 返回(this.model1Id?this.model1.total:this.total); }; }); };但是,我最终得到了一个RangeError: Maximum call stack size exceeded 错误(类似于this question 中提到的内容)。我假设这是因为它一遍又一遍地递归调用 getter,但我不确定解决问题的方法。
提前谢谢...
【问题讨论】:
标签: strongloop loopbackjs