java的Mongodb分页的高效实现
解决方法:
public static List<Document> largePageList(MongoCollection<Document> collection,BasicDBObject doc,int pageCount,int page, int pageSize,Object orderby) {
MongoCursor<Document> iteratorDoc = null;
List<Document> list = new ArrayList<Document>();
if(page <= pageCount){
iteratorDoc = collection.find(doc).sort(new BasicDBObject("ts", orderby)).skip((page-1)*pageSize).limit(pageSize).iterator();
while(iteratorDoc.hasNext()){
list.add(iteratorDoc.next());
}
if(iteratorDoc!=null){
iteratorDoc.close();
}
}
return list;
}
其中page是当前页数,pageSize是每页显示的记录数,pageCount是总条数,orderby为1代表升序,-1为降序,ts是你的排序字段