igual otra forma de conectarse a mongo es usando el modulo @nestjs/mongoose aqui dejo la documentacion muy buena por cierto https://docs.nestjs.com/techniques/mongodb
Introducción
¿Ya tomaste el Curso de NestJS: Programación Modular?
Instalación de Docker para este curso
Instalación de Platzi Store y presentación
Database
Configuración de Docker para MongoDB
Exploración de la base de datos con Mongo Compass
Instalando y conectando MongoDB Driver
Conexión como inyectable
Ejecutando un query
Usando variables de ambiente en Mongo
Mongoose
¿Qué es Mongoose? Instalación y configuración
Implementando Mongoose en Módulos
Conectando Mongo a los servicios
Create, update y delete
Pipe para mongoid
Agregando paginación
Agregando un filtro de rango para precios
Agregando indexadores
Relaciones en MongoDB
Relaciones uno a uno embebidas
Relaciones uno a uno referenciadas
Relaciones uno a muchos embebidas
Cómo tipar relaciones uno a muchos embebidas
Relaciones uno a muchos referenciadas
Manipulación de arrays en MongoDB
Próximos pasos
Continúa con el Curso de NestJS: Autenticación con Passport y JWT
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Nicolas Molina
Veamos una forma de realizar la conexión a una base de datos MongoDB con el driver oficial.
Conectarse a una base de datos es un procedimiento asíncrono. Este puede ejecutarse de manera global al inicializar el proyecto NestJS y, posteriormente, gracias a las características de NestJS, inyectar la conexión en cualquier servicio para hacer consultas.
Creamos un módulo al que denominaremos DatabaseModule, que contiene la configuración de forma global para establecer la conexión a una base de datos, a la vez que inyecta un servicio denominado “MONGO”. Este puede ser utilizado por cualquier otro servicio que requiere la conexión.
// src/database/database.module.ts
import { MongoClient } from 'mongodb';
@Global()
@Module({
providers: [
{
provide: 'MONGO',
useFactory: async () => {
const uri =
'mongodb://mongo:secret@localhost:27017/nestjs_mongo?authSource=admin';
const client = new MongoClient(uri);
await client.connect();
const database = client.db('platzi-store');
return database;
},
},
],
exports: ['API_KEY', 'MONGO'],
})
export class DatabaseModule {}
Inyectamos el servicio que lleva el nombre de “MONGO” en cualquier otro servicio que requiere su utilización.
// src/app.service.ts
import { Db } from 'mongodb';
@Injectable()
export class AppService {
constructor(@Inject('MONGO') private database: Db,) {}
}
De esta manera, solo usando el driver oficial de MongoDB, puedes crear un servicio reutilizable para establecer la conexión a tu base de datos.
Contribución creada por: Kevin Fiorentino.
// src/database/database.module.ts
import { MongoClient } from 'mongodb'; // 👈 Import MongoClient
@Global()
@Module({
providers: [
...
{
provide: 'MONGO',
useFactory: async () => { // 👈 Inject w/ useFactory
const uri =
'mongodb://root:root@localhost:27017/?authSource=admin&readPreference=primary';
const client = new MongoClient(uri);
await client.connect();
const database = client.db('platzi-store');
return database;
},
},
],
exports: ['API_KEY', 'MONGO'], // 👈 add in exports
})
// src/app.service.ts
import { Injectable, Inject } from '@nestjs/common';
import { Db } from 'mongodb'; // 👈 Import DB Type
@Injectable()
export class AppService {
constructor(
// @Inject('API_KEY') private apiKey: string,
@Inject('TASKS') private tasks: any[],
@Inject('MONGO') private database: Db,
@Inject(config.KEY) private configService: ConfigType<typeof config>,
) {}
getHello(): string {
const apiKey = this.configService.apiKey;
const name = this.configService.database.name;
return `Hello World! ${apiKey} ${name}`;
}
getTasks() { } // 👈 Create new method
}
Aportes 4
Preguntas 2
igual otra forma de conectarse a mongo es usando el modulo @nestjs/mongoose aqui dejo la documentacion muy buena por cierto https://docs.nestjs.com/techniques/mongodb
El Patron Singleton, es diferent de los pricipios SOLID
Este curso está buenísimo!
👏
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?