import org.bson.Document;
import com.cnunisoft.util.ConfigLoader;
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
public class MongoDBConnection {
private static MongoClient mongoClient;
private static final org.apache.logging.log4j.Logger logger = LogManager.getLogger(MongoDBConnection.class);
private MongoDBConnection() {
// 私有构造函数,防止类被实例化
}
public static synchronized MongoClient getInstance() {
if (mongoClient == null) {
//"mongodb://username:password@host1:port1,host2:port2,host3:port3/dbname"
String MongoURL=ConfigLoader.getConfig("MongoURL");
MongoURL="mongodb://myadmin:myadmin@10.8.xx.xx:27017/mydb";
logger.info("MongoURL=="+MongoURL);
logger.info("=====Mongo开始初始化==");
// 创建连接字符串,包含MongoDB集群的连接信息
ConnectionString connectionString = new ConnectionString(MongoURL);
// 创建MongoClientSettings,设置连接池和其他参数
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.build();
// 创建MongoClient实例
mongoClient = MongoClients.create(settings);
logger.info("=====Mongo实例成功==");
}
return mongoClient;
}
public static void main(String[] args)
{
MongoClient mongoClient=getInstance();
// 获取到数据库和集合对象
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("nodes");
MongoCursor<Document> cursor = collection.find(new Document().append("address", new Document("$regex", "192.168.1.1"))).iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
// 从document中获取需要的值
String address = document.getString("address");
String aa = document.getString("aa");
// 处理获取到的值
System.out.println(address);
System.out.println("aaa="+aa);
}
}
}
MongoDB,单例连接,正则表达式查询
最新推荐文章于 2024-09-11 12:08:31 发布