博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongoose 数据库操作 - 分页
阅读量:5377 次
发布时间:2019-06-15

本文共 2097 字,大约阅读时间需要 6 分钟。

使用mongoose 加入分页方法,临时还没发现什么更好的方法,我使用的方法是,直接在源代码中加入

找到 node_modules/mongoose/lib/model.js打开这个文件。里面加入这段代码

/** * author:gtt * updateTime:2014-5-3  */Model.execPageQuery = function find (currentPage,pageSize, conditions, fields, options, callback) {	 if ('function' == typeof conditions) {   	    callback = conditions;   	    conditions = {};   	    fields = null;   	    options = null;   	  } else if ('function' == typeof fields) {   	    callback = fields;   	    fields = null;   	    options = null;   	  } else if ('function' == typeof options) {   	    callback = options;   	    options = null;   	  }	//var countLine = 20;// 总行数	//var countPage = (countLine + pageSize-1 )/pageSize;// 总页数	var StartLine = (currentPage -1)*pageSize;	var m = this;	async.parallel([        function(cb) {        	m.count({},cb);        },              function(cb) {      	  if ('function' == typeof conditions) {      		m.find({}).limit(pageSize).skip(StartLine).exec(cb);      	  } else if ('function' == typeof fields) {      		 m.find(conditions).limit(pageSize).skip(StartLine).exec(cb);      	  } else if ('function' == typeof options) {      		m.find(conditions,fields).limit(pageSize).skip(StartLine).exec(cb);      	  }else{      		m.find(conditions,fields,options).limit(pageSize).skip(StartLine).exec(cb);      	  }        }    ], function(err,rs){				var page = {};//总页数 总条数 集合		if('number' == typeof rs[0]){			page.total = rs[0];			page.rows =  rs[1];		}else{			page.total = rs[1];			page.rows =  rs[2];		}		callback(err,page);	});}
调用方法:

var assert = require('assert')var util=require('util');var mongoose = require('mongoose');var Schema = mongoose.Schema;var ObjectId = mongoose.Types.ObjectId;mongoose.connect('mongodb://localhost:8888/test');mongoose.connection.on('error', function() {	console.error('connection error', arguments);});var PersonSchema = new Schema({    name : String  });var Person = mongoose.model('Person', PersonSchema,'Person');Person.execPageQuery(1,100,function(err,rel){	console.dir(rel);});

成天都在实现这样的烂玩意,啥时候自己也搞一套牛逼的。

转载于:https://www.cnblogs.com/mfrbuaa/p/5173107.html

你可能感兴趣的文章
MES架构
查看>>
hdu 2767(tarjan)
查看>>
sklearn之分类模型混淆矩阵和分类报告
查看>>
MySQL各存储引擎
查看>>
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>
BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)
查看>>
获取元素属性get_attribute
查看>>
在Flex中用Validator检测数字、字符串、Email.
查看>>
[leetcode]4Sum
查看>>
POJ1062 昂贵的聘礼
查看>>
【零基础学习iOS开发】【02-C语言】08-基本运算
查看>>
Java 将指定字符串连接到此字符串的结尾 concat()
查看>>
Hibernate Criterion
查看>>
LeetCode() Remove Duplicates from Sorted Array II
查看>>
SniperOJ-leak-x86-64
查看>>
css-IE中的border-radius和box-shadow
查看>>
HDU - 4284 Travel(floyd+状压dp)
查看>>
1027 制作表格
查看>>
面向对象的介绍与特性
查看>>