Để phân trang chung, bạn có thể sử dụng .skip()
và .limit()
các bổ ngữ trên đối tượng Truy vấn mà bạn có thể chuyển vào làm đối số cho phương thức của mình:
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
Với .skip()
là kết quả có thể xảy ra như thế nào và .limit()
là kích thước trang sẽ trả về.
Vì vậy, lấy một phiên bản của MongoOperations từ MongoTemplate và sử dụng một .find()
tiêu chuẩn hoạt động từ đó.
Mặc dù vậy, bỏ qua và giới hạn không phải là tùy chọn hiệu quả nhất, hãy cố gắng lưu trữ các giá trị nhìn thấy lần cuối trên một chỉ mục tự nhiên như _id
nếu có thể và sử dụng các truy vấn phạm vi để tránh "bỏ qua" 1000 kết quả.
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);