Overview
En esta guía, puede aprender a utilizar una cadena de conexión y una 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 la Conectarse a través de la guía de controladores en la documentación de Atlas.
Atlas
Para conectarse a una implementación de MongoDB en Atlas, incluya los siguientes elementos en su cadena de conexión:
URL de su clúster Atlas
Nombre de usuario de MongoDB
Contraseña de MongoDB
Luego, pase la cadena de conexión al constructor MongoClient.
Al conectarse a Atlas, recomendamos usar la opción de cliente API estable para evitar cambios importantes cuando Atlas se actualice a una nueva versión de MongoDB Server. Para obtener más información sobre la función API estable, consulte Guíade API estable.
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 conectarse a una implementación local independiente de MongoDB, especifique el host del servidor. Opcionalmente, especifique el puerto del servidor. Si no se especifica ningún puerto, el puerto predeterminado es 27017.
Puede especificar el host y el puerto al que conectarse mediante 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 conectarse a un conjunto de réplicas, se recomienda especificar todos los nodos que lo componen. Si uno o más nodos dejan de estar disponibles, especificar todos los nodos permite que el controlador se conecte al conjunto de réplicas si un nodo está 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 usar la detección de servicios DNS y buscar el registro SRV DNS del servicio al que se conecta, especifique el formato de conexión SRV en la cadena de conexión. Si especifica este formato, el controlador de Node.js volverá 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>/"
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 MongoClient objeto con el controlador Node.js, consulte la documentación de API para MongoClient.