node.js-mongodb封装分页查找

来源:互联网 发布:淘宝如何投诉人工客服 编辑:程序博客网 时间:2024/06/05 17:33

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




原创粉丝点击