Visão geral
Neste guia, você pode aprender como usar uma string de conexão e objeto MongoClient para conectar a diferentes tipos de sistemas MongoDB.
Atlas
Para se conectar a uma MongoDB deployment no Atlas, inclua os seguintes elementos em sua connection string:
URL do seu cluster Atlas
Nome de usuário do MongoDB
Senha do MongoDB
Em seguida, passe sua string de conexão para o método MongoClient.create().
Dica
Siga oguia de conexão do driver do Atlas para recuperar sua connection string.
Ao se conectar ao Atlas, recomendamos usar a opção de cliente Stable API para evitar alterações interruptivas quando o Atlas fizer upgrade para uma nova versão do servidor MongoDB. Para saber mais sobre o recurso de Stable API, consulte a página de Stable API.
O código abaixo mostra como usar o driver Kotlin para se conectar a um cluster do Atlas . O código também usa a opção serverApi para especificar uma versão da Stable API:
// Replace the placeholder with your Atlas connection string val uri = "<connection string>" // Construct a ServerApi instance using the ServerApi.builder() method val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build() val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .serverApi(serverApi) .build() // Create a new client and connect to the server val mongoClient = MongoClient.create(settings) val database = mongoClient.getDatabase("admin") try { // Send a ping to confirm a successful connection val command = Document("ping", BsonInt64(1)) val commandResult = database.runCommand(command) println("Pinged your deployment. You successfully connected to MongoDB!") } catch (me: MongoException) { System.err.println(me) }
Implantações locais
Para se conectar a uma implantação local do MongoDB, use localhost como nome do host. Por padrão, o processo mongod é executado na porta 27017, embora você possa personalizar isso para seu sistema.
O código a seguir mostra como usar o driver Kotlin para se conectar a uma implantação MongoDB local:
import com.mongodb.kotlin.client.coroutine.MongoClient val uri = "mongodb://localhost:27017/" val client = MongoClient.create(uri)
Conjuntos de réplicas
Um sistema do conjunto de réplicas MongoDB é um grupo de instâncias conectadas que armazenam o mesmo conjunto de dados. Esta configuração de instâncias fornece redundância de dados e alta disponibilidade de dados.
Para se conectar a um conjunto de réplicas, especifique o nome do host (ou endereço IP) e o número de porta dos membros do conjunto de réplicas.
Se você não conseguir fornecer uma lista completa de hosts no conjunto de réplicas, poderá especificar um ou mais hosts no conjunto de réplicas e instruir o driver Kotlin a executar a descoberta automática para encontrar os outros. Para instruir o driver a realizar a descoberta automática, execute uma das seguintes ações:
Especifique o nome do conjunto de réplica como o valor do parâmetro
replicaSet.Especifique
falsecomo o valor do parâmetrodirectConnection.Especifique mais de um host no conjunto de réplica.
Observação
O construtor MongoClient não está bloqueando. Quando você se conecta a um conjunto de réplicas, o construtor retorna imediatamente enquanto o cliente usa threads em segundo plano para se conectar ao conjunto de réplicas.
Se você construir um MongoClient e imprimir imediatamente a representação de string de seu atributo nodes , a lista poderá estar vazia enquanto o cliente se conecta aos membros do conjunto de réplicas.
Os exemplos seguintes mostram como conectar a um conjunto de réplicas MongoDB executando na porta 27017 de três hosts diferentes utilizando a classe ConnectionString ou MongoClientSettings . Selecione a aba que corresponde à sua classe preferida .
val connectionString = ConnectionString("mongodb://host1:27017,host2:27017,host3:27017/") val mongoClient = MongoClient.create(connectionString)
val seed1 = ServerAddress("host1", 27017) val seed2 = ServerAddress("host2", 27017) val seed3 = ServerAddress("host3", 27017) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder -> builder.hosts( listOf(seed1, seed2, seed3) ) } .build() val mongoClient = MongoClient.create(settings)
Observação
Conjunto de réplicas no Docker
Quando um conjunto de réplicas é executado no Docker, ele pode expor apenas um endpoint MongoDB . Nesse caso, o conjunto de réplicas não é detectável. Especificar directConnection=false em seu URI de conexão ou deixar essa opção sem definir pode impedir que seu aplicação se conecte a ele.
Em um ambiente de teste ou desenvolvimento, é possível conectar-se ao conjunto de réplicas especificando directConnection=true. Em um ambiente de produção, recomendamos configurar o cluster para que cada instância do MongoDB seja acessível fora da rede virtual do Docker.
Descoberta de serviço DNS
Para usar a descoberta de serviços DNS para procurar o registro DNS SRV do serviço ao qual você está se conectando, especifique o formato de conexão SRV em sua string de conexão. Além disso, se você habilitar o formato de conexão SRV, o driver Kotlin fará uma nova varredura automaticamente em busca de novos hosts sem precisar alterar a configuração do cliente .
O código a seguir mostra uma string de conexão que usa o formato de conexão SRV:
val uri = "mongodb+srv://<hostname>/"
Para saber mais sobre o formato de conexão SRV, consulte a entrada Formato de conexão SRV no manual do servidor MongoDB.
Documentação da API
Para saber mais sobre como criar um objeto MongoClient no driver Kotlin , consulte a seguinte documentação da API: