Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

¿Qué es Mongoose? Instalación y configuración

10/24
Recursos
npm install --save @nestjs/mongoose mongoose
// src/database/database.module.ts
import { MongooseModule } from '@nestjs/mongoose'; // 👈 Import

@Global()
@Module({
  imports: [  // 👈
    MongooseModule.forRootAsync({ // 👈 Implement Module
      useFactory: (configService: ConfigType<typeof config>) => {
        const {
          connection,
          user,
          password,
          host,
          port,
          dbName,
        } = configService.mongo;
        return {
          uri: `${connection}://${host}:${port}`,
          user,
          pass: password,
          dbName,
        };
      },
      inject: [config.KEY],
    }),
  ],
  providers: [
    {
      provide: 'API_KEY',
      inject: [config.KEY],
    },
  ],
  exports: ['API_KEY', 'MONGO', MongooseModule],  // 👈 add in exports
})
export class DatabaseModule {}

Aportes 5

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Se me presento un error el cual era:

TypeError: rxjs_1.lastValueFrom is not a function

la solucion para esto, fue cambiar la version de rxjs

npm i [email protected]^7

No olviden pasar como opciones useUnifiedTopology al cliente de mongo.

        const client = new MongoClient(uri, { useUnifiedTopology: true });

Si tienen un error tras importar MongooseModule:

import { MongooseModule } from'@nestjs/mongoose';

Les recomiendo ir al package.json y cambiar la versión de mongodb a:

"mongodb": "^3.6.4",

Luego tienen que borrar la carpeta de mongodb en /node_modules y correr en la terminal el comando:

npm i 

Parece ser un error entre esas dependencias, pero eso soluciona el problema.

yo lo hice la forma que dice la documentacion al usar mongoose,

Primero creando un provider dentro de la carpeta providers crean su archivo database.provider.ts

import * as mongoose from 'mongoose'

export const databaseProviders = [
    {
        provide: 'DATABASE_CONNECTION',
        useFactory: (): Promise<typeof mongoose> => 
            mongoose.connect(`url a tu db`)
    }
]

Luego ese provider lo traen al modulo de database

import { Module } from '@nestjs/common';
import { databaseProviders } from './database.provider';

@Module({
  providers: [...databaseProviders],
  exports: [...databaseProviders],
})
export class DatabaseModule {}

Y listo, con eso ya pueden injectar el servicio DATABASE_CONNECTION para tomar la conexion

👏