Docs Menu
Docs Home
/ /

Crea un MongoClient

Para conectarte a una implementación de MongoDB, necesitas dos cosas:

  • URI de conexión, también conocida como cadena de conexión, que le indica al controlador de Node.js a qué implementación de MongoDB debe conectarse.

  • Objeto MongoClient, que establece la conexión y lleva a cabo operaciones en la implementación de MongoDB.

También puedes utilizar MongoClientOptions para personalizar la forma en que se comporta el controlador Node.js mientras está conectado a MongoDB.

Esta guía muestra cómo crear una cadena de conexión y usar un objeto MongoClient para realizar la conexión a MongoDB.

Una cadena de conexión estándar incluye los siguientes componentes:

Componente
Descripción

mongodb://

Requerido. Un prefijo que identifica esto como un string en el formato de conexión estándar.

username:password

Opcional. Credenciales de autenticación. Si las incluye, el cliente autentica al usuario con la base de datos especificada en authSource. Para obtener más información sobre la opción de conexión authSource, consulte Verifique que el usuario esté en la base de datos de autenticación en la guía de solución de problemas de conexión.

host[:port]

Requerido. El host y el número de puerto opcional donde se ejecuta MongoDB. Si no incluyes el número de puerto, el controlador utiliza el puerto por defecto, 27017.

/defaultauthdb

Opcional. La base de datos de autenticación que se debe usar si la cadena de conexión incluye las credenciales de autenticación username:password@ pero no la opción authSource. Cuando se llama a client.db() sin argumento, esta es la base de datos que se utiliza. Si no se incluye este componente, el cliente autentica al usuario contra la base de datos admin.

?<options>

Opcional. Un string del query que especifica opciones específicas de conexión como pares <name>=<value>. Consulta Opciones de conexión para obtener una descripción completa de estas opciones.

Para obtener más información sobre cómo crear una cadena de conexión, consulte Cadenas de conexión en la documentación del servidor MongoDB.

Debe crearse un cliente para conectarse a una implementación de MongoDB en Atlas. Para crear un cliente, construya una instancia de MongoClient, pasando su URI y un objeto MongoClientOptions.

Tip

Reutilizar el cliente

Dado que cada MongoClient representa un grupo de conexiones a la base de datos, la mayoría de las aplicaciones solo requieren una única instancia de MongoClient, incluso en múltiples solicitudes. Para aprender más sobre cómo funcionan los pools de conexiones en el controlador, consultar la página Pools de conexiones.

Se debe usar la opción serverApi en el objeto MongoClientOptions para habilitar la característica de Stable API, que obliga al servidor a ejecutar operaciones con un comportamiento compatible con la versión de API especificada.

El siguiente código muestra cómo se puede especificar la cadena de conexión y la opción de cliente de la Stable API al conectarse a una implementación de MongoDB en Atlas y verificar que la conexión sea exitosa:

const { MongoClient, ServerApiVersion } = require("mongodb");
// Replace the placeholder with your Atlas connection string
const uri = "<connection string>";
// Create 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 {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Send 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);

Nota

El controlador de Nodo.js llama automáticamente al método MongoClient.connect() cuando utiliza el cliente para realizar operaciones CRUD en la implementación de MongoDB. Llamar al método MongoClient.connect() explícitamente si se desea verificar que la conexión sea exitosa.

Tip

Gestión explícita de recursos

El controlador de Nodo.js admite de forma nativa la gestión explícita de recursos para MongoClient, ClientSession, ChangeStreams y cursores. Esta característica es experimental y está sujeta a cambios. Para aprender a utilizar la gestión explícita de recursos, consulta las Notas de versión v6.9.

Para aprender más sobre la característica Stable API, consulta la página de Stable API.

Cuando se utiliza la misma instancia MongoClient para ejecutar varias operaciones de MongoDB simultáneamente, una operación lenta puede causar retrasos en otras operaciones. Las operaciones lentas mantienen ocupada una conexión a MongoDB, lo que puede causar que otras operaciones tengan que esperar hasta que otra conexión esté disponible.

Si sospecha que las operaciones lentas de MongoDB están causando retrasos, puede verificar el rendimiento de todas las operaciones en curso utilizando los siguientes métodos:

  • Activa el perfilador de base de datos en la implementación. Para aprender más, consulta perfilador de base de datos en el manual del servidor.

  • Ejecuta el comando db.currentOp() de MongoDB Shell. Para aprender más, consulta la documentación db.currentOp() en el manual del servidor.

  • Habilita la supervisión del pool de conexiones. Para obtener más información, consulta Eventos del pool de conexiones.

Después de determinar qué operaciones están causando retrasos, intente mejorar el rendimiento de dichas operaciones. Lea la Guía de mejores prácticas para el rendimiento de MongoDB para posibles soluciones.

Si implementas las mejores prácticas de rendimiento pero aún experimentas retrasos, puedes modificar la configuración de conexión para aumentar el tamaño del pool de conexiones. Un pool de conexiones es el conjunto de conexiones al servidor que el controlador mantiene en todo momento.

Para especificar el tamaño máximo de un pool de conexiones, se puede establecer la opción maxPoolSize en las opciones de conexión para la instancia de MongoClient. El valor por defecto de maxPoolSize es 100. Si el número de conexiones en uso a un servidor alcanza maxPoolSize, la siguiente operación enviada al servidor se pausa hasta que una conexión al driver esté disponible. El siguiente código establece maxPoolSize en 150 al crear un nuevo MongoClient:

const client = new MongoClient(uri, { maxPoolSize: 150 });

Tip

Para obtener más información sobre el agrupamiento de conexiones, consulta la sección Descripción general de pool de conexiones en la página Pool de conexiones.

Para obtener más información sobre cómo crear un objeto MongoClient con el Node.js Driver, consulta la siguiente documentación de la API:

Volver

Conectar

En esta página