Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Instalando y conectado MongoDB Driver

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

import { MongoClient } from 'mongodb';

const uri = 'mongodb://root:[email protected]: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 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta 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

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:[email protected]: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();
...

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

Muy bien