Overview
En esta guía, puedes aprender cómo conectarte a una instancia de MongoDB o a una implementación de set de réplicas usando el driver de Rust.
Esta guía incluye las siguientes secciones:
URI de conexión describe los URI de conexión y sus partes constitutivas
Cliente de MongoDB describe el
ClientTipos y formas de crear un cliente a partir de una cadena de conexiónEjemplo de conexión proporciona ejemplos que muestran cómo conectarse a MongoDB usando una cadena de conexión de Atlas
Otras formas de conectarse a MongoDB describe formas de conectarse a implementaciones de MongoDB que no están alojadas en Atlas
URI de conexión
Un URI de conexión, también conocido como cadena de conexión, indica al controlador cómo conectarse a MongoDB y cómo comportarse mientras está conectado.
Partes de una URI de conexión
El siguiente ejemplo explica cada parte de un URI de conexión de muestra:

En este ejemplo, usamos mongodb para el protocolo, lo que especifica el Formato estándar de cadena de conexión. También puedes utilizar el Formato de Conexión de lista de nodos iniciales de DNS si quieres más flexibilidad en tu implementación y la capacidad de cambiar los servidores en rotación sin reconfigurar los clientes.
Si utiliza autenticación basada en contraseña, la parte de la cadena de conexión después del protocolo contiene su nombre de usuario y contraseña. Reemplace el marcador de posición user con su nombre de usuario y pass con su contraseña. Si utiliza un mecanismo de autenticación que no requiere nombre de usuario ni contraseña, omita esta parte del URI de conexión.
La parte de la cadena de conexión después de las credenciales especifica el nombre del host o la dirección IP y el puerto de tu instancia de MongoDB. En el ejemplo anterior, utilizamos sample.host como el nombre del host y 27017 como el puerto. Reemplaza estos valores para apuntar a tu instancia de MongoDB.
La última parte de la cadena de conexión especifica las opciones de conexión y autenticación. En el ejemplo, establecemos dos opciones de conexión: maxPoolSize=20 y w=majority.
Tip
Opciones de conexión
Para obtener más información sobre cómo configurar las opciones de conexión, consulte la guía en Opciones de conexión.
Cliente MongoDB
Para conectarse a MongoDB, se debe crear una instancia de Client. Un cliente gestiona tus conexiones y ejecuta comandos de base de datos.
Tip
Reutilizar el cliente
Puedes mejorar el rendimiento reutilizando tu cliente en varias sesiones y operaciones. Puedes utilizar la misma instancia Client para realizar múltiples tareas, en lugar de crear una nueva cada vez. El tipo Client es seguro para su uso concurrente por múltiples hilos o tareas asíncronas.
Métodos de creación de clientes
Puedes crear un cliente que use tu cadena de conexión y otras opciones del cliente si trasladas un objeto ClientOptions al método with_options().
Para especificar tu URI de conexión, pásalo al método parse() de ClientOptions. Para configurar cualquier otra opción, configura el campo relevante de la estructura ClientOptions.
Si no especificas ninguna opción de cliente, crea un cliente pasando tu cadena de conexión al método Client::with_uri_str().
Para obtener más información sobre cómo crear un cliente, consulta la documentación de API para Cliente y with_options().
Tip
Stable API
Puede configurar la versión API estable como una opción para evitar cambios importantes cuando actualice a una nueva versión del servidor.
Para obtener más información sobre la función API estable, consulte la guía API estable.
Ejemplo de conexión
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)?; // 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(()) }
Tip
Siga la guía de inicio rápido para recuperar su cadena de conexión Atlas.
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.