No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Instalando y conectando MongoDB Driver

6/24
Recursos

Ya sabes como hacer la configuración de Docker, Ahora, para conectar NestJS y MongoDB es necesario realizar la instalación de algunas dependencias desde NPM que nos ayudarán a lograrlo.

Cómo instalar drivers MongoDB

Con el comando npm install mongodb --save instalarás el driver oficial para trabajar con NodeJS y MongoDB. Esta dependencia puedes utilizarla siempre que quieras, ya sea que estés trabajando con NestJS o no.

NOTA: Adicional a la instalación del driver, al trabajar con TypeScript es necesario instalar el tipado de la dependencia con el comando npm i @types/mongodb --save-dev para que nos ayude a trabajar con el driver y evitar errores.

Siempre usa dependencias oficiales cuando se trata de conexiones a bases de datos. Posterior a eso, podrás instalar otras dependencias que te ayudarán a mapear los datos, pero siempre se apoyan en el driver principal para establecer la conexión y realizar las consultas.


Contribución creada por: Kevin Fiorentino.

Código de ejemplo para instalación de MongoDB driver

npm i mongodb --save
npm i @types/mongodb --save-dev
# src/app.module.ts

import { MongoClient } from 'mongodb';

const uri = 'mongodb://root:root@localhost:27017/?authSource=admin&readPreference=primary';

const client = new MongoClient(uri);
async function run() {
  await client.connect();
  const database = client.db('platzi-store');
  const taskCollection = database.collection('tasks');
  const tasks = await taskCollection.find().toArray();
  console.log(tasks);
}
run();

Aportes 5

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Conexión a Una base de Datos sin Docker

Para los que no se pueden descargar e instalar docker porque su PC no le permite virtualización como a mi , aquí les tengo la solución.

Con esto no quiero decir que docker es una mala opción , es una muy buena opción pero no todos tenemos una pc que permita virtualización

Crearemos la URI que va a ser un poco diferente:

const uri =
'mongodb+srv://<user>:<password>@<cluster>.<port>.<host>?retryWrites=true&w=majority';

Los <cluster> , <port> y <host> los consigues cuando creas un cluster en mongo atlas en la uri

después de ahí elimina si a ti te sale ‘/test’ y remplázalo con los valores de la uri, mi ejemplo:

const uri = 'mongodb+srv://<user>:<password>@cluster0.qzz1w.mongodb.net?retryWrites=true&w=majority'

Ahora configuramos los siguiente:

const client = new MongoClient(uri, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

Después solo sigue los pasos del profesor y continua con la clase

En mi caso, tengo mongoDB instalado en mi maquina local, junto a robomongo3t y mongo compass, pero la conexion al cliente, la hice sin tener que especificar el user y pass… eso va a depender de cada config de la mongo. solo lo comento por si tienen problemas para conectarse, el codigo me quedo asi.

const uri = 'mongodb://localhost:27017';

const client = new MongoClient(uri);
async function run() {
  await client.connect();
  const database = client.db('platzi-store');
  const taskCollection = database.collection('tasks');
  const tasks = await taskCollection.find().toArray();
  console.log(tasks);
}
run();

Apuntes

  1. Instalamos en terminal para conectarnos directamente a driver nativo para MongoDB hecho para node para realizar el levantamiento del servidor con nest.
    npm i mongodb --save
  2. Instalar paquete para tipado de mongo db y guardar como dependencia de desarrollo
    npm i @types/mongodb --save-dev
  3. Desconectamos MongoDB Compass y obtenemos la uri para ejecutar el levantamiento desde node. Vamos a donde dice “Paste connection string” y compiamos el enlace que aparece en la pantalla

    ![Imagen de opción para seleccionar Paste connection string]
  4. Vamos al archivo app.module.ts para realizar la configuración en donde la estructura del url es mongodb://<user>:<pass>@<host>:<port>/?authSource=admin&readPreference=primary, añadimos esos valores y lo colocamos en constante “uri”.
...
import { MongoClient } from 'mongodb';
...
const uri = 'mongodb://root:root@localhost:27017/?authSource=admin&readPreference=primary';

const client = new MongoClient(uri);
async function run() {
  await client.connect();
  const database = client.db('platzi-store'); // entramos a db
  const taskCollection = database.collection('task'); // entramos a collección
  const task = await taskCollection.find().toArray; //array con valores en colección
  console.log(task);
}
run();
...

Algo muy importante es que toca tener node 14 con NVM lo podesmos instalar me estaba presentando error porque estaba utilizando node 12 con NVM

Muy bien