node.js-mongodb封装分页查找

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值