Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

672
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda