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);

    });

},
上一篇 下一篇

猜你喜欢

热点阅读