在Sails.js + Waterline

时间:2015-06-09 12:51:15

标签: sails.js waterline

有没有办法通过单一方法进行select query和count_all查询? 出于分页目的,我们需要知道项目总数,以便我们计算并显示页数。

4 个答案:

答案 0 :(得分:2)

getLength: function(req, res) {
    Posts.find({}).exec(function(err, items){

        return items.length;
    });
}

答案 1 :(得分:2)

在水线中查看Sails.Js - How I do pagination in sails.Js分页。

要获得项目总数,您可以使用:

Post.count().exec(function (err, nbOfInstances) {
    if(err) return res.negociate(err);

    return res.ok(nbOfInstances);
});

答案 2 :(得分:1)

首先查询并获取数据,然后删除限制,跳过参数并获取计数

delete query._criteria.limit;
delete query._criteria.skip;
Model.count(query._criteria).exec(function countCB(error, count) {
});

答案 3 :(得分:1)

我也无法在一个请求中找到任何内置方法,所以我这样做:

let queryParams = {},
    pageNo = 1,
    perPage = 10;
Post.count(queryParams)
    .then(_count=>{        
        return {posts_count: _count, 
               posts: Post.find(queryParams).paginate({page: pageNo, limit: perPage})};
     })
     .then(res.ok)
     .catch(err=>res.negotiate(err.message));

<强>输出:

/*
{
   posts_count: 0,
   posts: []
}

*/