No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

脷ltima oportunidad para asegurar tu aprendizaje por 1 a帽o a precio especial

Antes: $249

Currency
$189/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

0D
6H
47M
49S

Implementando Mongoose en M贸dulos

11/24
Recursos

Adem谩s de realizar la conexi贸n a la base de datos, Mongoose permite el mapeo de informaci贸n para estandarizar su estructura en cada colecci贸n de MongoDB.

Creando entidades con Mongoose

Crear entidades para darle forma a tus datos es tarea simple gracias a Mongoose.

Paso 1: creaci贸n de la entidad y sus propiedades

Suponiendo que necesitas una colecci贸n en Mongo para almacenar productos, comienza creando un archivo llamado product.entity.ts en el m贸dulo de productos de tu aplicaci贸n.

// modules/products/product.entity.ts
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';

@Schema()
export class Product extends Document {
  @Prop({ required: true })
  name: string;

  @Prop()
  description: string;

  @Prop({ type: Number })
  price: number;

  @Prop({ type: Number })
  stock: number;

  @Prop()
  image: string;
}

export const ProductSchema = SchemaFactory.createForClass(Product);

Observa el decorador @Prop() para mapear cada atributo de la clase Product que extiende de Document e indicarle a Mongoose que se trata de una propiedad del documento. Exportando ProductSchema que, gracias a SchemaFactory que es el responsable de crear y realizar el mapeo de datos, podr谩s realizar las posteriores consultas desde los servicios.

Paso 2: importaci贸n de la entidad

Ahora solo tienes que importar la entidad en el m贸dulo al que pertenece de la siguiente manera:

// modules/products/products.module.ts
import { MongooseModule } from '@nestjs/mongoose';
import { Product, ProductSchema } from './entities/product.entity';

@Module({
  imports: [
    MongooseModule.forFeature([
      {
        name: Product.name,
        schema: ProductSchema,
      },
    ])
  ]
})
export class ProductsModule {}

Importa MongooseModule y tienes que asignarle un nombre a la colecci贸n e inyectarle el schema que utilizar谩.

De esta forma, estar谩s creando la colecci贸n products en tu base de datos MongoDB y ya tienes mapeada en tu aplicaci贸n la estructura de cada documento que contendr谩 para evitar errores.


Contribuci贸n creada por: Kevin Fiorentino.

C贸digo de ejemplo para implementar Mongoose

// src/products/entities/product.entity.ts
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';

@Schema()
export class Product extends Document {
  @Prop({ required: true })
  name: string;

  @Prop()
  description: string;

  @Prop({ type: Number })
  price: number;

  @Prop({ type: Number })
  stock: number;

  @Prop()
  image: string;
}

export const ProductSchema = SchemaFactory.createForClass(Product);
// src/products/products.module.ts
...
import { MongooseModule } from '@nestjs/mongoose';
import { Product, ProductSchema } from './entities/product.entity';

@Module({
  imports: [
    MongooseModule.forFeature([
      {
        name: Product.name,
        schema: ProductSchema,
      },
    ]),
  ],
  ...
})
export class ProductsModule {}

Aportes 3

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Si presentan este error 鈥0 , rxjs_1.lastValueFrom) is not a function鈥 Podr铆a solucionarse con una de estas opciones.
npm i rxjs@^7
yarn add rxjs@^7
pnpm i rxjs @^7

馃憤

馃憦