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 鈥淧aste 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 鈥渦ri鈥.
...
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 dbconst taskCollection = database.collection('task'); // entramos a collecci贸nconst task = await taskCollection.find().toArray; //array con valores en colecci贸nconsole.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