private void buildDb() {
MongoClientOptions.Builder build = new MongoClientOptions.Builder();
//与数据最大连接数100
build.connectionsPerHost(100);
//如果当前所有的connection都在使用中,则每个connection上可以有50个线程排队等待
build.threadsAllowedToBlockForConnectionMultiplier(50);
build.connectTimeout(1 * 60 * 1000);
build.maxWaitTime(2 * 60 * 1000);
MongoClientOptions options = build.build();
ServerAddress serverAddress = new ServerAddress(uri);
List<ServerAddress> seeds = new ArrayList<>();
seeds.add(serverAddress);
MongoClient client = null;
if (!org.apache.commons.lang.StringUtils.isEmpty(userName) && !org.apache.commons.lang.StringUtils.isEmpty(password)) {
MongoCredential credential = MongoCredential.createScramSha1Credential(userName, dataBase, password.toCharArray());
List<MongoCredential> credentialsList = new ArrayList<>();
credentialsList.add(credential);
client = new MongoClient(seeds, credentialsList, options);
} else {
client = new MongoClient(seeds, options);
LogFactory.info(dataBase + " 数据库无验证登录");
}
MongoDatabase db = client.getDatabase(dataBase);
Bson listFilter = Filters.exists("cache", false);
FindIterable<Document> cursor = db.getCollection(colName).find(listFilter).limit(limit);
MongoCursor<Document> iterator = cursor.iterator();
while (iterator.hasNext()) {
//数据处理
}
iterator.close();
}