如何在Waterline中执行COUNT和GROUP BY?

时间:2013-11-08 16:21:11

标签: node.js sails.js waterline

我想在Waterline中执行此查询:

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

我不知道“countByName”函数是如何工作的,我也找不到合适的例子或解释。

我也尝试用

来调用它
Model.query('SELECT ...')

但这只是返回undefined。

1 个答案:

答案 0 :(得分:6)

我认为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); 
  });

编辑:经过一些研究,您不能使用计数,但您可以在Sails中使用其他计算组,但语法似乎没有详细记录。:

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