Overview
En esta guía, puedes aprender cómo utilizar una cadena de conexión y un MongoClient
objeto para conectarse a diferentes tipos de implementaciones de MongoDB.
Tip
Para obtener más información sobre cómo recuperar su cadena de conexión, consulte el Conectarse por Drivers guía en la documentación de Atlas.
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, pase la cadena de conexión al constructor MongoClient.
Cuando se conecte a Atlas, se recomienda utilizar la opción de cliente de Stable API para evitar cambios disruptivos al actualizar a una nueva versión de MongoDB Server en Atlas. Para obtener más información sobre la funcionalidad Stable API, consulta Stable API guide.
El siguiente código muestra cómo usar el controlador Node.js para conectarse a un clúster Atlas. El código también usa el campo server_api para especificar una versión estable de la API.
const { MongoClient, ServerApiVersion } = require("mongodb"); // Replace the placeholder with your Atlas connection string const uri = "<connection string>"; // Creates a MongoClient with a MongoClientOptions object to set the Stable API version const client = new MongoClient(uri, { serverApi: { version: ServerApiVersion.v1, strict: true, deprecationErrors: true, } } ); async function run() { try { // Connects the client to the server (optional starting in v4.7) await client.connect(); // Sends a ping to confirm a successful connection await client.db("admin").command({ ping: 1 }); console.log("Pinged your deployment. You successfully connected to MongoDB!"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
Implementaciones locales
Para conectar con una implementación local autónoma de MongoDB, especifica el host del servidor. Opcionalmente, especifica el puerto del servidor. Si no se especifica ningún puerto, el puerto por defecto es 27017.
Puedes especificar el host y el puerto a los que deseas conectarte utilizando una cadena de conexión, como se muestra en el siguiente código:
const client = new MongoClient("mongodb://host1:27017");
También puede especificar su host como localhost. El siguiente ejemplo de código se conecta a localhost en el puerto especificado:
const client = new MongoClient("mongodb://localhost:27017");
Sets de réplicas
Para conectarte a un set de réplicas, se recomienda que especifiques todos los nodos que forman parte del set de réplicas. Si uno o más nodos dejan de estar disponibles, especificar todos los nodos permite que el driver siga conectándose al set de réplicas si hay al menos un nodo disponible.
Sin embargo, basta con pasar la dirección de cualquier nodo del conjunto de réplicas al controlador. No es necesario que el nodo sea el principal, y puede ser un nodo oculto. El controlador detectará automáticamente los nodos restantes.
El siguiente ejemplo muestra cómo conectarse al set de réplicas utilizando una cadena de conexión y cómo verificar el nombre del set de réplicas en la conexión usando la opción de cadena de conexión replicaSet:
const client = new MongoClient("mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs");
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.
Detección de servicios DNS
Para utilizar el descubrimiento de servicios DNS para buscar el registro DNS SRV del servicio al que te estás conectando, deber especificar el formato de conexión SRV en tu cadena de conexión. Si se especifica este formato, el driver de Node.js buscará automáticamente nuevos hosts. Su implementación puede añadir hosts a su topología sin requerir cambios en la configuración de su cliente.
El siguiente código muestra una cadena de conexión que utiliza el formato de conexión SRV:
const 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 un objeto MongoClient con el driver de Node.js, consulta la documentación de la API para MongoClient .