Menu Docs
Página inicial do Docs
/ / /
Scala
/

Escolha um destino de conexão

Nesta página

  • Visão geral
  • Atlas
  • Implantações locais
  • Conjuntos de réplicas
  • Documentação da API

Neste guia, você pode aprender como utilizar uma string de conexão e um objeto do MongoClient para conectar a diferentes tipos de sistemas MongoDB .

Para se conectar a uma MongoDB deployment no Atlas, inclua os seguintes elementos em sua connection string:

  • O URL do seu Atlas cluster

  • Seu nome de usuário MongoDB

  • Sua senha do MongoDB

Em seguida, passe sua connection string para o construtor MongoClient .

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 significativas quando o Atlas atualizar para uma nova versão do MongoDB Server. Para saber mais sobre o recurso de Stable API , consulte o guia deStable API .

O seguinte código mostra como utilizar o driver Scala para conectar a um cluster Atlas . O código também usa o método serverApi() para especificar uma versão da API estável.

object MongoClientConnectToAtlas {
def main(args: Array[String]): Unit = {
// Replace the placeholder with your Atlas connection string
val connectionString = "<connection string>";
// Constructs a ServerApi instance using the ServerApi.builder() method
val serverApi = ServerApi.builder.version(ServerApiVersion.V1).build()
val settings = MongoClientSettings
.builder()
.applyConnectionString(ConnectionString(connectionString))
.serverApi(serverApi)
.build()
// Creates a new client and connects to the server
Using(MongoClient(settings)) { mongoClient =>
// Sends a ping to confirm a successful connection
val database = mongoClient.getDatabase("admin")
val ping = database.runCommand(Document("ping" -> 1)).head()
Await.result(ping, 10.seconds)
System.out.println("Pinged your deployment. You successfully connected to MongoDB!")
}
}
}

Você pode se conectar a uma implementação local do MongoDB das seguintes maneiras:

  • Instancie um objeto MongoClient sem nenhum parâmetro para se conectar a um servidor MongoDB em execução em localhost na porta 27017:

    val mongoClient = MongoClient()
  • Especifique explicitamente o hostname para se conectar a uma instância do MongoDB em execução no host especificado na porta 27017:

    val mongoClient = MongoClient("mongodb://host1")
  • Especifique explicitamente o hostname e o port:

    val mongoClient = MongoClient("mongodb://host1:27017")

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 Scala 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 false como o valor do parâmetro directConnection.

  • Especifique mais de um host no conjunto de réplica.

Você pode se conectar a um conjunto de réplicas do MongoDB especificando os nós em um ConnectionString. O exemplo a seguir mostra como especificar três membros do conjunto de réplicas:

val mongoClient = MongoClient("mongodb://host1:27017,host2:27017,host3:27017")

O exemplo seguinte mostra como especificar membros do conjunto de réplica e a opção replicaSet com o nome do conjunto de réplica:

val mongoClient = MongoClient("mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myReplicaSet")

O exemplo a seguir mostra como especificar uma lista de instâncias ServerAddress correspondentes a todos os membros do conjunto de réplicas:

val mongoClient = MongoClient(
MongoClientSettings.builder()
.applyToClusterSettings((builder: ClusterSettings.Builder) => builder.hosts(List(
new ServerAddress("host1", 27017),
new ServerAddress("host2", 27017),
new ServerAddress("host3", 27017)).asJava))
.build())

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.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Stable API