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, construye una instancia de 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 te conectes a Atlas, te recomendamos utilizar la opción de cliente Stable API para evitar cambios disruptivos cuando Atlas implemente una nueva versión de MongoDB Server. Para obtener más información sobre la funcionalidad Stable API, consulta 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 en Synchronous API pestañas a continuación para obtener muestras 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, consulta 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 nodos del conjunto de réplicas cuando se le proporciona la dirección de cualquiera de los nodos.
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 set 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.
Conectar con el Descubrimiento de Servicios DNS
Para usar la detección de servicios DNS para buscar el registro SRV del servicio al que te estás conectando, especifica el formato de conexión SRV en tu cadena de conexión. Si especificas este formato, el driver de Rust vuelve a buscar automáticamente nuevos hosts. Su implementación puede añadir hosts a su topología sin requerir cambios en 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 instancia de Client con el controlador de Rust, consulte la documentación de la API de Cliente.