nodejs分页查询方法

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

    });

},
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容