连接至 MongoDB
在此页面上
Overview
本页包含的代码示例展示了如何使用Kotlin Sync驾驶员程序,通过指定各种设置将应用程序程序连接到MongoDB 。
要使用此页面中的连接示例,请将代码示例复制到示例应用程序或您自己的应用程序中。 请务必将代码示例中的所有占位符(例如 <hostname>
)替换为 MongoDB 部署的相关值。
示例应用程序
您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:
确保您已在 Maven 或 Gradle项目中安装Kotlin Sync驾驶员程序。
复制以下代码并将其粘贴到新的
.kt
文件中。从此页面复制代码示例,并将其粘贴到文件中的指定行。
1 import com.mongodb.kotlin.client.MongoClient 2 import org.bson.Document 3 4 fun main() { 5 6 // Start example code here 7 8 // End example code here 9 10 val database = mongoClient.getDatabase("admin") 11 12 val command = Document("ping", 1) 13 val commandResult = database.runCommand(command) 14 println("Pinged your deployment. You successfully connected to MongoDB!") 15 }
连接
以下部分介绍如何连接到不同的目标,例如MongoDB的本地实例或Atlas上的云托管实例。
本地部署
以下代码显示了用于连接到 本地实例的连接string MongoDB:
val uri = "mongodb://localhost:27017/" val mongoClient = MongoClient.create(uri)
Atlas
以下代码显示了用于连接到 上托管的部署的连接string Atlas:
val uri = "mongodb+srv://<db_username>:<db_password>@<hostname/port>/?<options>" val mongoClient = MongoClient.create(uri)
副本集(Replica Set)
以下代码显示了用于连接到副本集的连接string :
val uri = "mongodb://<replica set member>:<port>/?replicaSet=<replica set name>" val mongoClient = MongoClient.create(uri)
传输层安全性 (TLS)
以下部分介绍了如何在启用 TLS协议的情况下连接到MongoDB 。 要学习;了解有关将 TLS 与Kotlin Sync驾驶员结合使用的更多信息,请参阅在连接上启用 TLS。
启用 TLS
以下标签页演示了如何在连接上启用TLS:
val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString("<connection string>")) .applyToSslSettings { builder -> builder.enabled(true) } .build() val mongoClient = MongoClient.create(settings)
val uri = "mongodb+srv://<db_username>:<db_password>@<cluster-url>?tls=true" val mongoClient = MongoClient.create(uri)
要了解有关启用 TLS 的更多信息,请参阅 TLS 配置指南中的启用 TLS 。
禁用主机名验证
以下标签页演示了如何在使用 TLS 连接时禁用主机名验证:
val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString("<connection string>")) .applyToSslSettings { builder -> builder.enabled(true) builder.invalidHostNameAllowed(true) } .build() val mongoClient = MongoClient.create(settings);
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?"tls=true&tlsAllowInvalidHostnames=true" val mongoClient = MongoClient.create(uri)
网络压缩
以下部分介绍了如何在指定网络压缩算法时连接到MongoDB 。
压缩算法
以下标签页演示了如何在连接到MongoDB时指定所有可用的压缩器:
val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString("<connection string>")) .compressorList( listOf( MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor()) ) .build() val mongoClient = MongoClient.create(settings)
val uri = ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd") val mongoClient = MongoClient.create(uri)
zlibCompressionLevel
以下标签页演示了如何为zlib
压缩器指定压缩级别:
val zlib = MongoCompressor.createZlibCompressor() val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, <level>))) .build() val mongoClient = MongoClient.create(settings)
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" + "compressors=zlib" + "zlibCompressionLevel=<zlib compression level>" val mongoClient = MongoClient.create(uri)
服务器选择
以下代码显示了指定服务器选择函数的连接string :
val client = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>", server_selector=<selector function>)
Stable API
以下代码展示了如何在MongoClientSettings
实例中指定 Stable API设置:
val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build() val uri = "<connection string>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .serverApi(serverApi) .build() val client = MongoClient.create(settings)
要了解有关stable API的更多信息,请参阅stable API 。