Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Elija un destino de conexión

En esta guía, puedes aprender cómo utilizar una cadena de conexión y un MongoClient objeto para conectarse a diferentes tipos de implementaciones de MongoDB.

Para conectarte a una implementación de MongoDB en Atlas, incluye los siguientes elementos en tu cadena de conexión:

  • La URL de su clúster Atlas

  • Su nombre de usuario de MongoDB

  • Su contraseña de MongoDB

Luego, pase la cadena de conexión al constructor MongoClient.

Tip

Sigue el Guía de conexión del controlador Atlas para recuperar tu cadena de conexión.

Cuando se conecte a Atlas, se recomienda utilizar la opción de cliente de Stable API para evitar cambios disruptivos al actualizar a una nueva versión de MongoDB Server en Atlas. Para obtener más información sobre la funcionalidad Stable API, consulta Stable API guide.

El siguiente código muestra cómo utilizar el controlador de Scala para conectarse a un clúster de Atlas. El código también utiliza el método serverApi() para especificar una versión Stable API.

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!")
}
}
}

Puede conectarse a una implementación local de MongoDB de las siguientes maneras:

  • Instancia un objeto MongoClient sin ningún parámetro para conectarse a un servidor MongoDB que se ejecuta en localhost en el puerto 27017:

    val mongoClient = MongoClient()
  • Especifique explícitamente hostname para conectarse a una instancia de MongoDB que se ejecuta en el host especificado en el puerto 27017:

    val mongoClient = MongoClient("mongodb://host1")
  • Especifica explícitamente el hostname y el port:

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

Para conectarse a un set de réplicas, especifica los nombres de host (o direcciones IP) y los números de puerto de los miembros del set de réplicas.

Si no puedes proporcionar una lista completa de hosts en el set de réplicas, puedes especificar uno o más de los hosts en el set de réplicas e indicar al driver Scala que realice un descubrimiento automático para encontrar los demás. Para indicar al controlador que realice un descubrimiento automático, realice una de las siguientes acciones:

  • Especifique el nombre del set de réplicas como el valor del parámetro replicaSet.

  • Especifique false como el valor del parámetro directConnection.

  • Especifica más de un host en el conjunto de réplicas.

Nota

El constructor MongoClient es no bloqueante. Al conectarse a un set de réplicas, el constructor devuelve el control inmediatamente mientras el cliente utiliza hilos en segundo plano para conectarse al set de réplicas.

Si construye un MongoClient e imprime inmediatamente la representación de cadena de su atributo nodes, la lista podría estar vacía mientras el cliente se conecta a los miembros del set de réplicas.

Puede conectarse a un conjunto de réplicas de MongoDB especificando los miembros en un ConnectionString. El siguiente ejemplo muestra cómo especificar tres miembros del conjunto de réplicas:

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

El siguiente ejemplo muestra cómo especificar miembros del conjunto de réplicas y la opción replicaSet con el nombre del conjunto de réplicas:

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

El siguiente ejemplo muestra cómo especificar una lista de instancias de ServerAddress que corresponde a todos los miembros del set 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())

Nota

Set de réplicas en Docker

Cuando un set de réplicas se ejecuta en Docker, se podría exponer solo un punto final de MongoDB. En este caso, el set de réplicas no se puede detectar. Si se especifica directConnection=false en la URI de conexión, o se deja esta opción sin configurar, puedes evitar que tu aplicación se conecte a ella.

En un entorno de prueba o desarrollo, se puede conectar al set de réplicas especificando directConnection=true. En un entorno de producción, se recomienda configurar el clúster para que cada instancia de MongoDB sea accesible fuera de la red virtual de Docker.

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API:

Volver

Stable API

En esta página