Overview
En esta guía, puede aprender a utilizar una cadena de conexión y una MongoClient objeto para conectarse a diferentes tipos de implementaciones de MongoDB.
Atlas
Para conectarse a una implementación de MongoDB en Atlas, incluya los siguientes elementos en su 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 su cadena de conexión.
Al conectarse a Atlas, recomendamos usar la opción de cliente API estable para evitar cambios importantes cuando Atlas se actualice a una nueva versión de MongoDB Server. Para obtener más información sobre la función API estable, consulte Guíade API estable.
El siguiente código muestra cómo usar el controlador de Scala para conectarse a un clúster Atlas. El código también utiliza el método serverApi() para especificar una versión estable de la 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!") } } }
Implementaciones locales
Puede conectarse a una implementación local de MongoDB de las siguientes maneras:
Cree una instancia de un objeto
MongoClientsin ningún parámetro para conectarse a un servidor MongoDB que se ejecuta enlocalhosten el puerto27017:val mongoClient = MongoClient() Especifique explícitamente
hostnamepara conectarse a una instancia de MongoDB que se ejecuta en el host especificado en el puerto27017:val mongoClient = MongoClient("mongodb://host1") Especifique explícitamente el
hostnamey elport:val mongoClient = MongoClient("mongodb://host1:27017")
Sets de réplicas
Para conectarse a un conjunto de réplicas, especifique los nombres de host (o direcciones IP) y los números de puerto de los miembros del conjunto de réplicas.
Si no puede proporcionar una lista completa de hosts en el conjunto de réplicas, puede especificar uno o más de ellos e indicar al controlador de Scala que realice la detección automática para encontrar los demás. Para ello, realice una de las siguientes acciones:
Especifique el nombre del conjunto de réplicas como el valor del parámetro
replicaSet.Especifique
falsecomo el valor del parámetrodirectConnection.Especifica más de un host en el conjunto de réplicas.
Nota
El MongoClient constructor no es bloqueante. Al conectarse a un conjunto de réplicas, el constructor retorna inmediatamente mientras el cliente usa subprocesos en segundo plano para conectarse al conjunto de réplicas.
Si construye un MongoClient e inmediatamente imprime 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 conjunto 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 ServerAddress instancias correspondientes a todos los miembros del 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())
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.
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: