使用mySQL的LoopBack“group by”能力?

时间:2016-02-17 12:20:37

标签: javascript loopbackjs strongloop

我是LoopBack的新手,我似乎错过了一些东西。 我听说过StrongLoopLoopBack这么多,我觉得很难相信这不存在。

我的情况: 我希望计算每种不同严重程度的事件数量。

表格例如:

  

EventID |严重性

     

1 | 2

     

2 | 2

     

3 | 4

     

4 | 3

     

5 | 3

     

6 | 5

     

7 | 1

     

8 | 2

现在我想计算事件的数量并按严重程度对它们进行分组,所以我得到了类似这样的JSON:

{1:1, 2:3, 3:2, 4:1, 5:1} *(severity:count)*

使用SQL非常简单,只需使用"SELECT severity, count(severity) FROM events GROUP BY severity"

我已经研究了一段时间了,仍然无法相信这个简单的事情无法用LoopBack完成!

任何解决方案?或者也许是一篇指向我的文章?

提前致谢!

1 个答案:

答案 0 :(得分:4)

Well Loopback ORM目前还没有完全支持它,但你总是可以直接使用MySQL驱动程序:

YourModel.dataSource.connector.query('SELECT severity, count(severity) FROM events GROUP BY severity', (err, results) => {
   //...
});

但是如果你想与数据库无关,你可以用Lodash在Javascript中做到这一点:

YourModel.find({ fields: 'severity' }).then(rows => {
  const results = _.mapValues(_.groupBy(rows, severity), 'length');
  //...
});