选择连接目标
概述
在本指南中,您可以了解如何使用连接字符串和MongoClient
对象连接到不同类型的MongoDB部署。
Atlas
要连接到Atlas上的MongoDB部署,请在您的连接字符串中包含以下元素
您的Atlas集群的URL
您的MongoDB用户名
您的MongoDB密码
然后,将连接字符串传递给MongoClient
构造函数。
提示
遵循Atlas驱动连接指南以检索您的连接字符串。
当您连接到Atlas时,我们建议使用稳定API客户端选项,以避免Atlas升级到MongoDB服务器的新版本时出现破坏性更改。要了解更多关于稳定API功能的信息,请参阅稳定API指南。
以下代码展示了如何使用 Kotlin Sync 驱动程序连接到 Atlas 集群。代码还使用了 serverApi()
方法来指定稳定的 API 版本。
// Defines Stable API version val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build() // Uses MongoClientSettings to apply connection string and specify the Stable API version val settings = MongoClientSettings.builder() .applyConnectionString("<connection string URI>") .serverApi(serverApi) .build() val mongoClient = MongoClient.create(settings)
本地部署
要连接到本地 MongoDB 部署,将主机名设置为 localhost
。默认情况下,mongod
进程运行在端口 27017,但您可以根据您的部署自定义此端口。
以下代码展示了如何使用 Kotlin Sync 驱动程序连接到本地 MongoDB 部署
val settings = MongoClientSettings.builder() .applyConnectionString("mongodb://localhost:27017") .build() val mongoClient = MongoClient.create(settings)
副本集
要连接到副本集,请指定副本集成员的主机名(或 IP 地址)和端口号。
如果您无法提供副本集中的完整主机列表,您可以指定一个或多个主机,并指导 Kotlin Sync 驱动程序自动发现其他主机。要指导驱动程序执行自动发现,请执行以下操作之一
将副本集的名称指定为
replicaSet
参数的值。将
directConnection
参数的值指定为false
。指定副本集中的多个主机。
以下示例展示了如何使用 ConnectionString
或 MongoClientSettings
类连接到在三个不同主机上运行端口 27017
的 MongoDB 副本集。选择与您首选类对应的选项卡。
val mongoClient = MongoClient.create("mongodb://host1:27017,host2:27017,host3:27017/")
val hosts = listOf( ServerAddress("host1", 27017), ServerAddress("host2", 27017), ServerAddress("host3", 27017) ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder -> builder.hosts(hosts) } .build() val mongoClient = MongoClient.create(settings)
注意
MongoClient
构造函数是非阻塞的。当您连接到副本集时,构造函数会立即返回,而客户端则使用后台线程连接到副本集。
如果您构建了一个 MongoClient
并立即打印其 nodes
属性的字符串表示形式,当客户端连接到副本集成员时,列表可能为空。