Menu Docs
Página inicial do Docs
/ / /
Kotlin Coroutine
/ /

Conecte-se ao MongoDB

Neste guia, você pode aprender como se conectar a uma instância ou um conjunto de réplicas do MongoDB usando o driver Kotlin.

Você pode ver um exemplo de código para se conectar a um Atlas cluster ou continuar lendo para saber mais sobre a classe MongoClient e os URIs de conexão.

Você pode se conectar e se comunicar com MongoDB usando a classe MongoClient.

Utilize o método MongoClient.create() para construir um MongoClient.

Importante

Reutilize seu cliente

Como cada MongoClient representa um repositório seguro de conexões com o banco de dados, a maioria dos aplicativos requer apenas uma única instância de um MongoClient, mesmo em várias threads.

Para saber mais sobre como os pool de conexões funcionam no driver, consulte apágina de perguntas frequentes .

Todos os limites de uso de recursos, como conexões máximas, se aplicam a instâncias individuais do MongoClient.

Para saber mais sobre as diferentes configurações que você pode utilizar para controlar o comportamento do seu MongoClient, consulte o guia em Configurações do MongoClient.

Dica

Sempre chame MongoClient.close() para limpar recursos quando uma instância não for mais necessária.

O URI de conexão fornece um conjunto de instruções que o driver utiliza para se conectar a uma implantação MongoDB. Ele instrui o driver sobre como deve se conectar ao MongoDB e como deve se comportar enquanto conectado. A figura a seguir explica cada parte de um URI de conexão de amostra:

figura das peças da string de conexão

Esta figura usa o formato de connection string padrão, mongodb para o protocolo. Você também pode usar o DNS Seed List Connection Format, mongodb+srv, se desejar mais flexibilidade de implantação e a capacidade de alterar os servidores em rotação sem reconfigurar os clientes.

Observação

Se a sua implantação estiver no MongoDB Atlas, consulte o guia de conexão do driver do Atlas e selecione Kotlin na lista suspensa de idioma para recuperar sua connection string.

A próxima parte do URI de conexão contém suas credenciais se você estiver usando um mecanismo de autenticação baseado em senha. Substitua o valor de user pelo seu nome de usuário do banco de dados de dados, e pass pela senha de usuário do banco de dados de dados. Se o mecanismo de autenticação não exigir credenciais, omita esta parte do URI de conexão.

A próxima parte do URI de conexão especifica o nome do host ou endereço IP, seguido pela porta da sua instância do MongoDB. No exemplo, sample.host representa o nome do host e 27017 é o número da porta. Substitua estes valores para consultar a sua instância MongoDB.

A última parte do URI de conexão contém opções de conexão como parâmetros. No exemplo, definimos duas opções de conexão: maxPoolSize=20 e w=majority. Para obter mais informações sobre as opções de conexão, vá para a seção Opções de conexão deste guia.

Para se conectar a uma implementação do MongoDB no Atlas, crie um cliente. Você pode criar um cliente que use sua conexão e outras opções do cliente passando um objeto MongoClientSettings para o método MongoClient.create() .

Para instanciar um objeto MongoClientSettings, use o método builder para especificar sua string de conexão e quaisquer outras opções de cliente e, em seguida, chame o método build(). Encadeie o método applyConnectionString() ao construtor para especificar seu URI de conexão.

Você pode definir a opção de cliente da stable API para evitar alteração interruptiva ao atualizar para uma nova versão do servidor. Para saber mais sobre o recurso de stable API, consulte a página de stable API.

O código a seguir mostra como você pode especificar a cadeia de conexão e a opção de cliente Stable API ao se conectar a uma implementação do MongoDB no Atlas e verificar se a conexão foi bem-sucedida:

// 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)
}

Se estiver se conectando a uma única instância ou conjunto de réplicas do servidor MongoDB que não esteja hospedado no Atlas, consulte as seções a seguir para saber como se conectar.

Se você precisar executar um servidor MongoDB em seu computador local para fins de desenvolvimento, em vez de usar um cluster do Atlas, será necessário concluir o seguinte:

  1. Baixe a versão Comunidade ou Enterprise do MongoDB Server.

  2. Instale e configure o servidor MongoDB.

  3. Inicie o servidor.

Importante

Sempre proteja seu servidor do MongoDB contra ataques maliciosos. Consulte nossa Lista de verificação de segurança para obter uma lista de recomendações de segurança.

Depois de iniciar com êxito o servidor MongoDB, especifique a connection string no código de conexão do driver.

Se o servidor MongoDB estiver sendo executado localmente, você poderá usar a connection string "mongodb://localhost:<port>", em que <port> é o número da porta que você configurou no servidor para escutar as conexões de entrada.

Se você precisar especificar um nome de host ou endereço IP diferente, consulte a entrada do Manual do servidor sobre strings de conexão.

Para testar se você pode se conectar ao servidor, substitua a string de conexão no exemplo de código Connect to MongoDB Atlas e execute-a.

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 sistema de conjunto de réplicas, especifique o nome de host (ou endereço IP) e o número de porta dos membros do conjunto de réplicas.

Se não for possível fornecer uma lista completa de hosts no conjunto de réplicas, você poderá especificar um único ou um subconjunto de hosts na réplica e instruir o driver a executar a descoberta automática de uma das seguintes maneiras:

  • Especifique o nome do conjunto de réplica como o valor do parâmetro replicaSet

  • Especifique false como o valor do parâmetro directConnection

  • Especifique mais de um host no conjunto de réplicas

Dica

Embora você possa especificar um subconjunto dos hosts em um conjunto de réplicas, inclua todos os hosts no conjunto de réplicas para garantir que o driver possa estabelecer a conexão se um dos hosts estiver inacessível.

Os exemplos seguintes mostram como especificar múltiplos hosts para uma instância do MongoClient utilizando a classe ConnectionString ou MongoClientSettings. Selecione a aba que corresponde à sua turma 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)

Voltar

Guia de conexão