nodejs分页查询方法
2018-05-05 本文已影响0人
骚噜噜
var async = require('async'); //async module
var mongoose = require('mongoose');//mongoose module
/**
* 分页查询,该方法依赖`mongoose`组件
* @param page 页数,如第1页,就传1
* @param pageSize 每页大小,如一页展示10条,就传10
* @param Model mongoose的指定Model对象,是一个schema对象
* @param fieldJson 查询字段
* @param populate 关联查询
* @param queryParams 查询条件
* @param sortParams 排序
* @param callback 回调函数
*/
pageQueryNew :function (page, pageSize, Model,fieldJson, populate, queryParams, sortParams, callback) {
var start = (page -1) * pageSize;
var $page = {};
async.parallel({
count:function (done) {// 查询数量
Model.count(queryParams).exec(function (err, count) {
done(err, count);
});
},
records:function (done) {// 查询一页的记录
Model.find(queryParams, fieldJson).skip(start).limit(pageSize).populate(populate).sort(sortParams).exec(function (err, doc) {
done(err, doc);
});
}
}, function (err, results) {
var count = results.count;
$page.total = count;
$page.data = results.records;
callback(err, $page);
});
},