Overview
En esta guía, puedes aprender a usar una cadena de conexión y un objeto MongoClient para conectarte a diferentes tipos de implementación de MongoDB.
Tip
Para obtener más información sobre cómo recuperar su cadena de conexión, consulte la guía Conexión a través de drivers 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, pasa tu cadena de conexión al constructor de MongoClient.
Cuando te conectes a Atlas, recomendamos utilizar la opción del cliente Stable API para evitar cambios disruptivos cuando Atlas se actualice a una nueva versión de MongoDB Server. Para obtener más información sobre la funcionalidad API estable, consulta la guía sobre la Stable API.
El siguiente código muestra cómo usar el controlador Node.js para conectarse a un clúster de Atlas. El código también utiliza el campo server_api para especificar una versión Stable 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, es suficiente con pasar la dirección de cualquiera de los nodos del set de réplicas al driver. El nodo no necesita ser el primario y puede ser un nodo oculto. El controlador luego descubrirá 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 usar el descubrimiento de servicios DNS y buscar el registro DNS SRV del servicio al que se conecta, especifique el formato de conexión SRV en su cadena de conexión. Si especifica este formato, el controlador de Node.js vuelve a escanear automáticamente en busca de nuevos hosts. Su 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:
const uri = "mongodb+srv://<hostname>/"
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 .