使用mySQL的LoopBack"group by"能力?

Fin*_*kel 6 javascript strongloop loopbackjs

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

我的情况:我正在计算每种不同严重程度的事件数量.

一张表例如:

EventID | 严重

1 | 2

2 | 2

3 | 4

4 | 3

5 | 3

6 | 五

7 | 1

8 | 2

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

{1:1, 2:3, 3:2, 4:1, 5:1} *(severity:count)*
Run Code Online (Sandbox Code Playgroud)

使用SQL它很简单,只需使用"SELECT severity, count(severity) FROM events GROUP BY severity".

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

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

提前致谢!

Far*_*hat 4

目前 Loopback ORM 尚未完全支持它,但您始终可以直接使用 MySQL 驱动程序:

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

但如果您想要与数据库无关,您可以使用 Lodash 在 Javascript 中实现:

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