Consultas a MongoDB con Nest.js: Implementación de Endpoints

Clase 8 de 24Curso de NestJS: Persistencia de Datos con MongoDB

Resumen

La parte más importante de conectarse a una base de datos es la obtención de las mismas para su posterior uso.

Cómo realizar consultas a la base

Teniendo establecida la conexión a la base de datos, puedes ejecutar consultas de manera muy sencilla en tus servicios.

// src/app.service.ts
import { Db } from 'mongodb';

@Injectable()
export class AppService {

  constructor(@Inject('MONGO') private database: Db,) {}
  
  getProducts() {
    const productCollection = this.database.collection('products');
    return productCollection.find().toArray();
  }
}

Puedes utilizar estas consultas en tus controladores para la creación de endpoints.

// src/app.controller.ts
import { AppService } from './app.service';

@Controller()
export class AppController {

  constructor(private readonly appService: AppService) {}

  @Get('/products')
  getProducts() {
    return this.appService.getProducts();
  }
}

Así, tienes ya disponible la creación de todo un CRUD con persistencia en base de datos MongoDB para que juegues con tu aplicación.


Contribución creada por: Kevin Fiorentino.

Código de ejemplo para ejecutar una query

// src/app.service.ts

...
@Injectable()
export class AppService {
  ...

  getTasks() { // 👈 Query
    const tasksCollection = this.database.collection('tasks');
    return tasksCollection.find().toArray();
  }
}
// src/app.controller.ts
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}
  ...

  @Get('/tasks/') // 👈 New endpoint
  getTasks() {  
    return this.appService.getTasks();
  }
}