Docs Menu
Docs Home

Conéctese a MongoDB

En esta guía, puede aprender cómo conectarse a una instancia o un conjunto de réplicas de MongoDB utilizando el controlador Kotlin.

Puede ver el código de muestra para Conéctese a un clúster Atlas o continúe leyendo para obtener más información sobre el MongoClient URI de clase y conexión.

Puede conectarse y comunicarse con MongoDB utilizando la clase MongoClient.

Utilice el método MongoClient.create() para construir un MongoClient.

Importante

Reutilizar el cliente

Como cada MongoClient representa un grupo de conexiones seguras para subprocesos a la base de datos, la mayoría de las aplicaciones solo requieren una única instancia de un MongoClient, incluso en múltiples subprocesos.

Para obtener más información sobre cómo funcionan los grupos de conexiones en el controlador, consulte la Página de preguntas frecuentes.

Todos los límites de uso de recursos, como las conexiones máximas, se aplican a instancias individuales MongoClient.

Para obtener más información sobre las diferentes configuraciones que puede utilizar para controlar el comportamiento de MongoClient su, consulte la guía sobre Configuración de MongoClient.

Tip

Llama siempre a MongoClient.close() para limpiar recursos cuando una instancia ya no sea necesaria.

El URI de conexión proporciona un conjunto de instrucciones que el driver utiliza para conectarte a una implementación de MongoDB. Instruye al driver sobre cómo debe conectarse a MongoDB y cómo debe comportarse mientras está conectado. En la siguiente figura, se explica cada parte de un URI de conexión de muestra:

Figura de piezas de la cadena de conexión

Esta figura utiliza el formato de cadena de conexión estándar mongodb para el protocolo. También puede usar el formato de conexión de lista mongodb+srvde semillas DNS si desea mayor flexibilidad de implementación y la posibilidad de cambiar los servidores en rotación sin reconfigurar los clientes.

Nota

Si su implementación está en MongoDB Atlas, consulte la guía de conexión del controlador Atlas y seleccione Kotlin desde el menú desplegable de idioma para recuperar su cadena de conexión.

La siguiente parte del URI de conexión contiene sus credenciales si utiliza un mecanismo de autenticación basado en contraseña. Reemplace el valor user con el nombre de usuario de su base de datos y pass con la contraseña de dicho usuario. Si su mecanismo de autenticación no requiere credenciales, omita esta parte del URI de conexión.

La siguiente parte del URI de conexión especifica el nombre de host o la dirección IP, seguido del puerto de tu instancia de MongoDB. En el ejemplo, sample.host representa el nombre de host y 27017 es el número de puerto. Reemplaza estos valores para hacer referencia a tu instancia de MongoDB.

La última parte del URI de conexión contiene opciones de conexión como parámetros. En el ejemplo, se establecen dos opciones de conexión: maxPoolSize=20 w=majorityy. Para obtener más información sobre las opciones de conexión, consulte las opciones de conexión. sección de esta guía.

Para conectarte a una implementación de MongoDB en Atlas, crea un cliente. Puedes crear un cliente que use tu cadena de conexión y otras opciones del cliente si trasladas un objeto MongoClientSettings al método MongoClient.create().

Para crear una instancia de un objeto MongoClientSettings, utiliza el método del compilador para especificar tu cadena de conexión y cualquier otra opción de cliente y, a continuación, llama al método build(). Encadena el método applyConnectionString() al compilador para especificar el URI de tu conexión.

Puedes configurar la opción de cliente de Stable API para evitar cambios disruptivos al actualizar a una nueva versión del servidor. Para obtener más información sobre la funcionalidad Stable API, consulta la página Stable API.

El siguiente código muestra cómo se puede especificar la cadena de conexión y la opción de cliente de la Stable API al conectarse a una implementación de MongoDB en Atlas y verificar que la conexión sea exitosa:

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

Si se conecta a una única instancia de servidor MongoDB o un conjunto de réplicas que no está alojado en Atlas, consulte las siguientes secciones para saber cómo conectarse.

Si necesita ejecutar un servidor MongoDB en su máquina local para fines de desarrollo en lugar de usar un clúster Atlas, debe completar lo siguiente:

  1. Descarga la versión Community o Empresa de MongoDB Server.

  2. Instale y configure MongoDB Server.

  3. Inicia el servidor.

Importante

Se debe proteger siempre el servidor MongoDB de ataques maliciosos. Se debe consultar nuestra Lista de verificación de seguridad para ver una lista de recomendaciones de seguridad.

Después de iniciar MongoDB Server correctamente, se debe especificar la cadena de conexión en el código de conexión del driver.

Si MongoDB Server se está ejecutando localmente, se puede utilizar la cadena de conexión "mongodb://localhost:<port>" en que <port> es el número de puerto que se configuró para que el servidor escuche las conexiones entrantes.

Si debes especificar un nombre de host o una dirección IP diferente, consulta nuestra entrada del Manual del servidor sobre Cadenas de conexión.

Para probar si se puede realizar la conexión al servidor, se debe reemplazar la cadena de conexión en el ejemplo de código Conectar a MongoDB Atlas y ejecútalo.

Una implementación de un set de réplicas de MongoDB es un grupo de instancias conectadas que almacenan el mismo conjunto de datos. Esta configuración de instancias proporciona redundancia de datos y alta disponibilidad de datos.

Para conectarte a la implementación de un set de réplicas, especifica los nombres de host (o direcciones IP) y los números de puerto de los nodos del set de réplicas.

Si no puedes proporcionar una lista completa de los hosts del set de réplicas, puedes especificar uno o un subconjunto de los hosts de la réplica e indicar al driver que realice el descubrimiento automático de una de las siguientes formas:

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

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

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

Tip

Si bien puedes especificar un subconjunto de hosts en un set de réplicas, incluye todos los hosts en el set de réplicas para asegurarte de que el driver pueda establecer la conexión si no se puede acceder a uno de los hosts.

En los siguientes ejemplos, se muestra cómo especificar varios hosts para una instancia de MongoClient con la clase ConnectionString o MongoClientSettings. Selecciona la pestaña que corresponde a tu clase 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)