Overview
En esta guía, puedes aprender cómo utilizar una cadena de conexión y un Client instancia para conectarse a diferentes tipos de implementaciones de MongoDB.
Conecta a una implementación de Atlas
Para conectarte a una implementación de MongoDB en Atlas, incluye los siguientes elementos en tu cadena de conexión:
URL de tu clúster de Atlas
Nombre de usuario de MongoDB
Contraseña de MongoDB
Luego, crea una instancia Client con tu cadena de conexión.
Tip
Sigue el Guía de conexión del controlador Atlas para recuperar tu cadena de conexión.
Cuando se conecta a Atlas, le recomendamos usar la opción de cliente API estable para evitar cambios incompatibles cuando Atlas se actualice a una nueva versión del servidor MongoDB. Para obtener más información sobre la función API estable, consulte la Stable API guide.
El siguiente código muestra cómo crear un cliente que utilice una cadena de conexión de Atlas y la versión de la API Stable, conectarse a MongoDB y verificar que la conexión haya sido exitosa. Selecciona desde el Asynchronous API o Synchronous API pestañas a continuación para ver ejemplos de código de conexión correspondientes.
Tip
Para aprender más sobre runtimes asíncronos y síncronos, consulta la guía API asíncronas y síncronas.
use mongodb::{ bson::doc, options::{ ClientOptions, ServerApi, ServerApiVersion }, Client }; async fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; // Set the server_api field of the client_options object to Stable API version 1 let server_api = ServerApi::builder().version(ServerApiVersion::V1).build(); client_options.server_api = Some(server_api); // Create a new client and connect to the server let client = Client::with_options(client_options)?; // Send a ping to confirm a successful connection client.database("admin").run_command(doc! { "ping": 1 }).await?; println!("Pinged your deployment. You successfully connected to MongoDB!"); Ok(()) }
use mongodb::{ bson::doc, options::{ ClientOptions, ServerApi, ServerApiVersion }, sync::Client }; fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).run()?; // Set the server_api field of the client_options object to Stable API version 1 let server_api = ServerApi::builder().version(ServerApiVersion::V1).build(); client_options.server_api = Some(server_api); // Create a new client and connect to the server let client = Client::with_options(client_options)?; // Send a ping to confirm a successful connection client.database("admin").run_command(doc! { "ping": 1 }).run()?; println!("Pinged your deployment. You successfully connected to MongoDB!"); Ok(()) }
Otras formas de conectarse a MongoDB
Si debes conectarte a una única instancia de servidor de MongoDB o a un set de réplicas que no esté alojado en Atlas, consulta las siguientes secciones para saber cómo conectarte.
Realizar la conexión a MongoDB Server en la máquina local
Si necesitas ejecutar el MongoDB Server en tu máquina local con fines de desarrollo, debes completar lo siguiente:
Siga el tutorial Instalar MongoDB para instalar el MongoDB Server en su máquina. Selecciona el tutorial de instalación adecuado para tu máquina y sistema operativo.
Después de completar la instalación, inicia el servidor.
Importante
Asegure siempre su servidor contra ataques maliciosos. Consulta la lista de verificación de Seguridad para consultar una lista de recomendaciones de seguridad.
Después de iniciar correctamente el servidor de MongoDB, conéctese a la instancia local siguiendo los siguientes pasos:
Sustituye la cadena de conexión almacenada en la variable
urien el ejemplo anterior con la cadena de conexión de tu instancia local de MongoDB.Si su MongoDB Server se está ejecutando localmente, puede utilizar la siguiente cadena de conexión para conectarse a MongoDB:
mongodb://localhost:<port> En esta cadena de conexión,
<port>es el número de puerto que configuraste para que tu servidor escuche las conexiones entrantes.Ejecuta el código de conexión. Si el código se ejecuta con éxito, deberías ver la siguiente salida en tu consola:
Pinged your deployment. You successfully connected to MongoDB!
Tip
Para obtener más información sobre las cadenas de conexión y los formatos personalizados, consulte Cadenas de conexión en el manual del servidor.
Conectarse a un set de réplicas
Una implementación de set de réplicas de MongoDB es un grupo de instancias conectadas o nodos, donde los nodos almacenan el mismo conjunto de datos. Esta configuración de instancias proporciona redundancia de datos y alta disponibilidad de datos.
Para conectarte a una implementación de set de réplicas, especifica el nombre de host y los números de puerto de cada instancia, separados por comas, y el nombre del set de réplicas como valor del parámetro replicaSet en la cadena de conexión.
En el siguiente ejemplo, los nombres de host son host1, host2, y host3, y los números de puerto son todos 27017. El nombre del set de réplicas es myRS. El siguiente código muestra el URI de conexión para el set de réplicas con estas especificaciones:
mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRS
Cuando se conecta a un set de réplicas, el driver realiza las siguientes acciones por defecto:
Descubre todos los miembros del conjunto de réplicas cuando se le proporciona la dirección de cualquiera de los miembros.
Envía operaciones al nodo apropiado, como instrucciones para realizar escrituras sobre el nodo primario. Para aprender más sobre el primario del set de réplicas, consulta Primario del set de réplicas en el manual del servidor.
Tip
Solo se requiere especificar un host para conectarse a un conjunto de réplicas. Sin embargo, para garantizar la conectividad cuando el host especificado no esté disponible, proporcione la lista completa de hosts.
directConnection
Para forzar operaciones en el host designado en el URI de conexión, especifique la opción directConnection. Las conexiones directas muestran el siguiente comportamiento:
No admiten cadenas SRV.
Falla al guardar cuando el host especificado no es el primario.
Requieren que especificar una preferencia de lectura secundaria cuando el host especificado no es el miembro principal. Para obtener más información sobre estos miembros del set de réplicas, consulta Miembros secundarios del set de réplicas en el manual del servidor.
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.
Conéctese con el descubrimiento de servicios DNS.
Para usar el descubrimiento de servicios DNS y consultar el registro DNS SRV del servicio al que te conectas, especifica el formato de conexión SRV en tu cadena de conexión. Si especificas este formato, el controlador de Rust vuelve a escanear automáticamente en busca de nuevos hosts. Tu implementación puede agregar hosts a su topología sin necesidad de modificar la configuración del cliente.
El siguiente código muestra una cadena de conexión que utiliza el formato de conexión SRV:
let uri = "mongodb+srv://<hostname>/";
Para aprender más sobre el formato de conexión SRV, consulta la entrada Formato de conexión SRV en el manual de MongoDB Server.
Documentación de la API
Para obtener más información sobre cómo crear una Client instancia con el controlador Rust, consulte la documentación de la API para Client.