2016-02-17 16 views
5

Jestem nowy w LoopBack i wydaje mi się, że czegoś brakuje. Słyszałem tak wiele o StrongLoop i LoopBack, trudno mi uwierzyć, że to nie istnieje.Funkcja LoopBack "group by" z mySQL?

Mój przypadek: Czekam na policzenie ilości zdarzeń z różną intensywnością.

Stół na przykład:

eventid | Ciężkość:

1 | 2

2 | 2

3 | 4

4 | 3

5 | 3

6 | 5

7 | 1

8 | 2

Teraz chcę policzyć ilość zdarzeń i grupy je surowości, więc coś jak ten JSON powrotem:

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

SQL Jest to dość proste, wystarczy użyć "SELECT severity, count(severity) FROM events GROUP BY severity".

Sprawdziłem to przez chwilę i nadal nie mogę uwierzyć, że tej prostej rzeczy nie da się zrobić z LoopBack!

Jakieś rozwiązanie? A może artykuł, do którego mnie kieruję?

Z góry dzięki!

Odpowiedz

2

Dobrze Sprzężenie zwrotne ORM w tej chwili nie ma poparcia dla niej całkowicie, ale zawsze można użyć sterownika MySQL bezpośrednio:

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

Ale jeśli chcesz być agnostykiem bazy danych, można to zrobić w JavaScript z Lodash:

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