node.js-mongodb封裝分頁查詢
阿新 • • 發佈:2018-12-24
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);
});
});