Node.js、express、mongodb 实现分页查询、条件搜索
2015-11-10 17:44
1256 查看
前言
在上一篇Node.js、express、mongodb 入门(基于easyui datagrid增删改查) 的基础上实现了分页查询、带条件搜索。实现效果
1、列表第一页。2、列表第二页
3、条件搜索
分页实现
1、分页实现使用了Mongodb的query.skip().limit().where() 这三个方法,然后利用query.exec()。2、我在页面使用的是easyui datagrid,从datagrid往后台传page和rows是用POST方式传,我刚开始用req.params.page没拿到数据,后使用req.body.page和req.body.rows拿到page和rows, 拿前台查询条件一样类似处理。
3、计算分页条件。 从前台拿到的page默认是从1开始的,所以计算Skip的参数为(page-1)*rows。
4、往前台返回数据时不仅要返回分页后的数据,还要返回所有数据的总数(Length), 因为easyui datagrid的数据源需要。即:
jsonArray={rows:rs,total:result.length}; res.json(jsonArray);
实现代码
/****************************
get paged list
************************/
router.post('/index/pagelist',function(req,res){
var count=0;
var page=req.body.page;
var rows=req.body.rows;
var stuname=req.body.username;
console.log(stuname);
console.log("page:"+page+",rows:"+rows);
var query=student.find({});
query.skip((page-1)*rows);
query.limit(rows);
if(stuname){
query.where('stuname',stuname);
}
//计算分页数据
query.exec(function(err,rs){
if(err){
res.send(err);
}else{
//计算数据总数
student.find(function(err,result){
jsonArray={rows:rs,total:result.length}; res.json(jsonArray);});
}
});
});
参考资料
1、/article/5984631.html。2、http://www.nonb.cn/blog/nodejs-mongoose-query-chinaese.html
相关文章推荐
- MongoDB基础CRUD JAVA语句
- MongoDb 用 mapreduce 统计留存率
- MongoDb 用 mapreduce 统计留存率
- 【MongoDB for Java】Java操作MongoDB
- Tokumx 代替 Mongodb 群集部署
- MongoDB的导入导出(7)
- mongodb开发遇到的问题总结
- 8天学通MongoDB——第一天 基础入门
- Python调用MongoDB使用心得
- mongoDB简明教程-python
- 30分钟让你了解MongoDB基本操作(转)
- MongoDB之安装
- MongoDB学习 索引
- MongoDB学习 索引
- MongoDB学习 索引
- MongoDB学习 索引
- MongoDB学习 索引
- MongoDB学习 索引
- MongoDB学习 索引
- MongoDB学习 索引