Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

664
Views
Cómo agregar una matriz anidada de objetos con el decorador @Prop de @nestjs/mongoose

Cuando uso una matriz anidada de objetos en el decorador de accesorios:

 @Schema() export class Child { @Prop() name: string; } @Schema() export class Parent { @Prop({type: [Child], _id: false}) // don't need `_id` for nested objects children: Child[]; } export const ParentSchema = SchemaFactory.createForClass(Parent);

me sale un error:

 TypeError: Invalid schema configuration: `Child` is not a valid type within the array `children`.

¿Cómo puedo solucionar esto si necesito usar @Prop({_id: false}) (para mantener el esquema anidado independiente)?


Si cambiamos un decorador de accesorios a @Prop([Child]) funciona, sin embargo, debemos deshabilitar _id para objetos anidados con:

 @Schema({_id: false}) export class Child { @Prop() name: string; } @Schema() export class Parent { @Prop([Child]) children: Child[]; }

Y en este caso no tendremos un objeto Child genérico y no los usaremos como un esquema independiente.

Otra forma es crear un esquema secundario y usarlo en Child @Prop({type: [childSchema], _id: false}) , pero eso parece una sobrecarga.

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

un ejemplo rápido que describe su caso es:

 import { Document, Schema as MongooseSchema } from 'mongoose'; import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; class GuildMember { @Prop({ type: String, required: true, lowercase: true }) _id: string; @Prop({ required: true }) id: number; @Prop({ required: true }) rank: number; } @Schema({ timestamps: true }) export class Guild extends Document { @Prop({ type: String, required: true, lowercase: true }) _id: string; @Prop({ type: MongooseSchema.Types.Array}) members: GuildMember[] } export const GuildsSchema = SchemaFactory.createForClass(Guild);

porque en el esquema anidado no tiene que definir el tipo DENTRO del decorador de accesorios, sino que solo indica que este campo es una matriz y valida el tipo usando TypeScript

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!