MongoDB分页查询

Springboot application.properties 配置文件

spring.data.mongodb.database = mytestdb
spring.data.mongodb.host = localhost
spring.data.mongodb.port = 27017

首先需要一个与数据库集合对应的实体类

package com.mongodb.MongoDB;

public class User {
	private String id;
	private String username;
	private String password;

	public User() {
	}

	public User(String username, String password) {
		this.username = username;
		this.password = password;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}

}
package com.mongodb.MongoDB;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MongoBDRespositoryTest {

	@Autowired
	private MongoRepository<User, String> mongoRepository;

	@Test
	public void paging() {

		// 查询集合有多少条数据
		long size = mongoRepository.count();
		
		// 计算一页需要展示10个需要展示多少页
		long sum = size % 10 == 0 ? size / 10 : size / 10 + 1;

		for (int i = 0; i < sum; i++) {

			System.out.println("第" + (i + 1) + "页");
			
			Page<User> findAll = mongoRepository.findAll(PageRequest.of(i, 10));

			for (User user : findAll) {
				
				System.out.println(user);
			}
		}

	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值