limit表示读取条数
skip表示越过的条数
db.集合名.stats().count 查询集合中所有条数
db.js
//这个模块里封装了所有对数据库的常用操作,不管数据库的什么操作,都需要连接数据库
var MongoClient = require("mongodb").MongoClient;
function _connectDB(callback) {
var url = "mongodb://127.0.0.1:27017/haha";
//链接数据库
MongoClient.connect(url, function (err, db) {
callback(err, db);
});
}
//分页查找数据,找到所有数据
exports.findByFen = function (collectionName, data, C, D) {
var result = []; //结果数组
if(arguments.length == 3){
var callback = C;
var skipnumber = 0;
var limit = 0;
} else if(arguments.length == 4){
var callback = D;
var args = C;
var skipnumber = args.pageamount * args.page;
var limit = args.pageamount;
} else {
throw new Error("函数参数个数不对");
return;
}
//链接数据库
_connectDB(function (err, db) {
var cursor =db.collection(collectionName).find(data).skip(skipnumber).limit(limit);
cursor.each(function(err, doc) {
if(err){
callback(err, null);
db.close();
return;
}
if (doc != null) {
result.push(doc); //放入结果数组
} else {
//遍历结构,没有更多的文档了
callback(null, result);
db.close();
}
});
});
}
调用:
app.get("/fen",function (req, res) {
//这个页面需接收一个page参数
var page = parseInt(req.query.page); //express中读取get参数很简单
db.findByFen("teacher", {}, {"pageamount":3,"page":page}, function (err, result) {
res.send(result);
});
});