Conectarse a una base de datos implica la posibilidad de manipular en su totalidad los datos desde su creación, modificación y eliminación, además de la lectura de los mismos.
Crear documento
La creación de un registro es bastante sencilla, basta con pasarle los datos necesarios para la creación de un nuevo documento.
Recuerda que puedes apoyarte en los DTO de NestJS para el tipado de datos. El productModel espera que le envíes un objeto que contenga las mismas propiedades que el esquema que hayas creado para la colección.
Actualizar documento
La actualización de un registro conlleva dos partes, comprobar que el mismo exista para su posterior actualización. Afortunadamente, Mongoose puede realizar las dos acciones en una.
Para la actualización de un documento, la función findByIdAndUpdate primero busca el registro por ID y si lo encuentra, lo actualiza. Aquí ya es necesario un poco de conocimiento en el lenguaje de consulta de MongoDB para utilizar el $set que actualizará los campos que se le indique.
Eliminar documento
La eliminación de un registro es similar a la actualización. El documento debe existir para su posterior eliminación. La función findByIdAndDelete lo hará por nosotros.
Revisa que uses el ApiProperty en todos los attrs del Dto para que se haga la actualización correctamente.
// src/products/dtos/products.dtos.tsimport{ApiProperty,PartialType}from'@nestjs/swagger';exportclassCreateProductDto{@IsString()@IsNotEmpty()@ApiProperty({ description:`product's name`})// 👈 use ApiPropertyreadonly name:string;@IsString()@IsNotEmpty()@ApiProperty()// 👈 use ApiPropertyreadonly description:string;@IsNumber()@IsNotEmpty()@IsPositive()@ApiProperty()// 👈 use ApiPropertyreadonly price:number;@IsNumber()@IsNotEmpty()@ApiProperty()// 👈 use ApiPropertyreadonly stock:number;@IsUrl()@IsNotEmpty()@ApiProperty()// 👈 use ApiPropertyreadonly image:string;}exportclassUpdateProductDtoextendsPartialType(CreateProductDto){}