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 3

Ordenar por:

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

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

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

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();
...

Muy bien