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
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
Nicolas Molina
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.
Crear entidades para darle forma a tus datos es tarea simple gracias a Mongoose.
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.
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.
// 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
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
👍
👏
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?