Как я могу выполнить COUNT и GROUP BY в Waterline?

Я хочу выполнить этот запрос в Waterline:

SELECT priority, count(*) AS Num FROM Ticket GROUP BY priority

Я не знаю, как работает функция countByName, и я не нахожу подходящего примера или объяснения.

Я также пытался вызвать его с помощью

Model.query('SELECT ...')

но это просто возвращает undefined.


person Spyse    schedule 08.11.2013    source источник


Ответы (1)


Я думаю, что Model.query ничего не вернет, ему нужно дать обратный вызов. Это должно выглядеть примерно так:

Model.query("SELECT priority, COUNT(*) as num FROM ticket GROUP BY priority", 
  function(error, counts) { 
    if(error) console.log(error);
    // Do something with the results here.        
    console.log(counts); 
  });

Редактировать: после некоторых исследований вы не можете использовать count, но вы можете использовать другие вычисления с группой в Sails, но синтаксис не выглядит хорошо документированным.:

Something.find({ groupBy: [ 'keyfield' ], sum: [ 'totalAmt' ] })
  .done(function(error, response) {
    console.log(response);
  });
person sfb    schedule 02.01.2014