java操作mongodb(分页)

9 篇文章 1 订阅
7 篇文章 11 订阅

使用skip+limit的方式实现分页。直接上代码(依赖的代码在上一篇博客中):

/**
	 * 分页查询
	 * @param page
	 * @param pageSize
	 * @return
	 */
	public List<User> pageList(int page,int pageSize){
		DB myMongo = MongoManager.getDB("myMongo");
		DBCollection userCollection = myMongo.getCollection("user");
		
		DBCursor limit = userCollection.find().skip((page - 1) * 10).sort(new BasicDBObject()).limit(pageSize);		List<User> userList = new ArrayList<User>();
		while (limit.hasNext()) {
			User user = new User();
			user.parse(limit.next());
			userList.add(user);
		}
		return userList;
	}


 

List<User> list = userAction.pageList(1,10);
		for(User user : list){
			System.out.println(user);
		}
		System.out.println("=======================");
		list = userAction.pageList(2,10);
		for(User user : list){
			System.out.println(user);
		}


输出如下:

id:2,name:manman,address:beijing
id:1,name:jinhui,address:beijing
id:3,name:3,address:3
id:4,name:4,address:4
id:5,name:5,address:5
id:6,name:6,address:6
id:7,name:7,address:7
id:8,name:8,address:8
id:9,name:9,address:9
id:10,name:10,address:10
=======================
id:11,name:11,address:11
id:12,name:12,address:12
id:13,name:13,address:13
id:13,name:13,address:13
id:13,name:13,address:13
id:13,name:13,address:13
id:13,name:13,address:13


 注意:

使用skip跳过少量的数据是很好的选择,但是如果跳过大量的数据的时候,skip方法就会执行的很慢。所以我们要尽量的避免使用skip跳过大量的数据。后面我们会提到如何优化大数据量的分页。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值