在LIMIT之前获取行数,但在它自己的行上

时间:2016-11-03 10:02:00

标签: json node.js postgresql

在我限制postgres的回报之前,我试图获得完整的行数,我使用过:

count(*) OVER() AS full_count

然而,当我把它放在选择中时,它输出的每一行都不太理想。我将NodeJS中的JSON作为rowCount输出,并注意到输出中包含了rowCount的自带,但这是在限制之后,是否有办法用JSON替换full_count中的SELECT name, id, count(*) OVER() AS full_count FROM table ORDER BY id ASC LIMIT ($1) OFFSET ($2) ,或者尝试做我正在做的事情的更好方法?这是我到目前为止的询问:

{
  total : 170000
  rows : [
    {
      name : Karl,
      age : 31,
    },
      name : Helen,
      age : 36
    }
  ]
}

更新

预期产出:

router.get('/api/v1/person/:limit?/:offset?', (req, res, next) => { 
    person.get(req, res);
});

更新2

NodeJS

路线

this.get = function(req, res) {        
    var limit = req.params.person_limit || 10;
    var offset = req.params.person_offset || 0;
    if (limit > 100) {
        limit = 100;
    }
    pool.connect(function(err, client, done) {
        if(err) {
            done();
            console.log(err);
            return res.status(500).json({success: false, data: err});
        }
        client.query('SELECT name, id FROM person ORDER BY id ASC LIMIT ($1) OFFSET ($2)',[limit, offset], function(err, result) {
          done();             
          if(err) {
              return console.error('error running query', err);
          } 
          res.send(result);
        });
    });
};

模型

UseShellExecute

0 个答案:

没有答案