java分页获取mongodb的大量数据并遍历处理
解决方法:
以下代码分页获取mongodb的数据并遍历处理,如果数据比较多,建议后台启动一个定时器去执行这些代码
MongoCollection<Document> collection = MongoDb.getDb().getCollection("table_2019");
BasicDBObject doc = new BasicDBObject();
int count = (int) MongoDb.getCount(collection,doc);
int pageSize=20000;//每次获取20000条
int pageCount=count/pageSize+1;//计算页数
int page=1;
do {
HashMap<String, Integer> map = new HashMap<String,Integer>();
MongoCursor<Document> iteratorDoc = null;
//ts是排序的字段,改成你的即可
iteratorDoc = collection.find(doc).sort(new BasicDBObject("ts", 1)).skip((page-1)*pageSize).limit(pageSize).iterator();
while(iteratorDoc.hasNext()){
Document document=iteratorDoc.next();
}
if(iteratorDoc!=null){
iteratorDoc.close();
}
page++;
} while (page <= pageCount);