使用MongoClient连接MongoDB数据库,MongoClient 实例自带连接池,一个应用中,仅需要一个MongoClient实例即可。
连接单个MongoDB实例
使用无参的MongoClient,默认连接localhost,端口使用27017
MongoClient mongoClient = new MongoClient();复制代码
指定host,端口默认 27017
MongoClient mongoClient = new MongoClient( "host1" );复制代码
指定host和端口
MongoClient mongoClient = new MongoClient( "host1" , 27017 );复制代码
使用MongoClientURI创建连接
MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://host1:27017"));复制代码
连接复制集
使用MongoClientURI连接
MongoClient mongoClient = new MongoClient(
new MongoClientURI("mongodb://host1:27017,host2:27017,host3:27017"));复制代码
通过制定ServerAddress 连接
MongoClient mongoClient = new MongoClient(
Arrays.asList(new ServerAddress("host1", 27017),
new ServerAddress("host2", 27017),
new ServerAddress("host3", 27017)));复制代码
连接分片集群
指定mongos的host和端口
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );复制代码
通过MongoClientURI 连接
MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://localhost:27017"));复制代码
使用MongoClientURI 连接多个mongos实例
MongoClient mongoClient = new MongoClient(
new MongoClientURI("mongodb://host1:27017,host2:27017"));复制代码
使用ServerAddress 连接多个实例
MongoClient mongoClient = new MongoClient(
Arrays.asList(new ServerAddress("host1", 27017),
new ServerAddress("host2", 27017)));复制代码
连接选项
可以使用MongoClient或者MongoClientOptions,或者这两者指定连接MongoDB的配置。 例如如果需要使用SSL连接
MongoClientURI uri = new MongoClientURI("mongodb://user1:pwd1@host1/?authSource=db1&ssl=true");
MongoClient mongoClient = new MongoClient(uri);复制代码
使用MongoCredential 设置授权信息
String user; // the user name
String database; // the name of the database in which the user is defined
char[] password; // the password as a character array
// ...
MongoCredential credential = MongoCredential.createCredential(user, database, password);
MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true).build();
MongoClient mongoClient = new MongoClient(new ServerAddress("host1", 27017),
Arrays.asList(credential),
options);复制代码