Criteria criteria = new Criteria();
Query query = new Query(criteria);
long total = mongoTemplate.count(query, interfaceName);
long totalPageNum = (total + pageSize - 1) / pageSize;
String mid = "";
for (int i = 1; i <= totalPageNum; i++) {
log.info("---------------第" + i + "页----------------");
Set<String> set = new HashSet<String>();
try {
BasicDBObject totalCon = new BasicDBObject();
if (StringUtils.isNotBlank(mid)) {
totalCon.put("_id", new BasicDBObject("$gt", new ObjectId(mid)));
}
DBCursor dbObjects = getPageList(pageSize, interfaceName, totalCon);
while (dbObjects.hasNext()) {
DBObject dbObject = dbObjects.next();
String str = dbObject.toString();
getPhoneStr(str, set);
mid = dbObject.get("_id").toString();
}
getMemberList(set);
} catch (Exception e) {
log.info("mongoDB爆炸了,查询异常");
log.info("异常信息:{}", e);
e.printStackTrace();
}
}
public DBCursor getPageList(int pageSize, String collectionName, BasicDBObject totalCon) {
try {
return mongoTemplate.getCollection(collectionName).find(totalCon).sort(new BasicDBObject("_id", 1)).limit(pageSize);
} catch (Exception e) {
log.error("***大数据量数据分页查询失败,collectionName=" + collectionName, e);
}
return null;
}