Overview
En esta guía, puede aprender cómo conectarse a una instancia de MongoDB o a una implementación de un conjunto de réplicas mediante el controlador Rust.
Esta guía incluye las siguientes secciones:
URI de conexión describe los URI de conexión y sus partes constitutivas
El cliente MongoDB describe el
ClientTipos y formas de crear un cliente a partir de una cadena de conexiónEl ejemplo deconexión proporciona ejemplos que muestran cómo conectarse a MongoDB mediante una cadena de conexión 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
Una URI de conexión, también conocida como cadena de conexión, le dice 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 una URI de conexión de muestra:

En este ejemplo, usamos mongodb para el protocolo, que especifica el formato de cadena de conexión estándar. También puede usar el formato de conexión de lista de semillas DNS si desea mayor flexibilidad en su implementación y la posibilidad 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 de host o la dirección IP y el puerto de su instancia de MongoDB. En el ejemplo anterior, usamos sample.host como nombre de host y 27017 como puerto. Reemplace estos valores para apuntar a su instancia de MongoDB.
La última parte de la cadena de conexión especifica las opciones de conexión y autenticación. En el ejemplo, se establecen 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, debe crear una instancia Client. Un cliente administra sus conexiones y ejecuta comandos de base de datos.
Tip
Reutilizar el cliente
Puede mejorar el rendimiento reutilizando su cliente en diferentes sesiones y operaciones. Puede usar la misma instancia Client para realizar varias tareas, en lugar de crear una nueva cada vez. El tipo Client es seguro para el uso simultáneo de varios subprocesos 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 la URI de conexión, pásela al método parse() de ClientOptions. Para configurar otras opciones, configure el campo correspondiente de la estructura ClientOptions.
Si no especifica ninguna opción de cliente, cree un cliente pasando su cadena de conexión al método Client::with_uri_str().
Para obtener más información sobre cómo crear un cliente, consulte la documentación de la API para clientes.y con_opciones().
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 use una cadena de conexión de Atlas y la versión estable de la API, conectarse a MongoDB y verificar que la conexión sea correcta. Seleccione de la lista 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 debe conectarse 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.
Realizar la conexión a MongoDB Server en la máquina local
Si debe ejecutar el servidor MongoDB en su máquina local para fines de desarrollo, debe completar lo siguiente:
Siga el tutorial de instalación de MongoDB para instalar el servidor MongoDB en su equipo.Seleccione el tutorial de instalación adecuado para su equipo y sistema operativo.
Después de completar la instalación, inicie el servidor.
Importante
Proteja siempre su servidor contra ataques maliciosos. Consulte la Lista de verificación de seguridad para obtener 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:
Reemplace la cadena de conexión almacenada en la
urivariable en el ejemplo anterior con la cadena de conexión de su instancia local de MongoDB.Si su servidor MongoDB se ejecuta localmente, puede usar 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 configuró su servidor para escuchar conexiones entrantes.Ejecute el código de conexión. Si se ejecuta correctamente, debería ver el siguiente resultado en la 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 conectarse a una implementación de un conjunto de réplicas, especifique el nombre de host y los números de puerto de cada instancia, separados por comas, y el nombre del conjunto de réplicas como el 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 27017. El nombre del conjunto de réplicas es myRS. El siguiente código muestra la URI de conexión del conjunto de réplicas con estas especificaciones:
mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRS
Al conectarse a un conjunto de réplicas, el controlador realiza las siguientes acciones de forma predeterminada:
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 miembro correspondiente, como instrucciones para escribir en el nodo principal. Para obtener más información sobre el conjunto de réplicas principal, consulte "Conjunto de réplicas principal" 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.
Conexión directa
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.
Fallan en las escrituras cuando el host especificado no es el principal.
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.