Lucho con el problema. En mi aplicación, tengo que crear un pedido con varios atributos y uno de ellos es una matriz de productos pedidos. En la matriz orderProduct, cada objeto debe tener productId y la cantidad.
Pero no quiero crear una nueva colección llamada OrderedProduct. En la solución actual, está creando ambos: producto pedido vacío y pedidos. y tengo un problema
"Cast to ObjectId failed for value \"{\n productId: { _id: '0a8b51d0-5bb1-4ab6-83d0-5b0c15f44e2b' },\n amount: 3\n}\" (type Object) at path \"_id\" for model \"OrderedProduct\""esquemas
@Schema() export class Order { @Prop() _id: string @Prop({ type: Date, default: Date.now }) confirmedDate: Date @Prop({ type: Types.ObjectId, ref: OrderStatus.name }) orderStatus: OrderStatus @Prop() userName: string @Prop() email: string @Prop() phoneNumber: string @Prop({ type: Types.ObjectId, ref: OrderedProduct.name }) orderedProductArray: [OrderedProduct] } @Schema() export class OrderedProduct { @Prop(() => Int) amount: string @Prop({ type: Types.ObjectId, ref: Cloth.name }) product: Cloth }No he sido capaz de hacer esto. ¡Seré apreciado por su ayuda!
Creo que necesitas usar el esquema de tu subobjeto. algo como:
@Schema() export class OrderedProduct { @Prop(() => Int) amount: string @Prop({ type: Types.ObjectId, ref: Cloth.name }) product: Cloth } export const OrderedProductSchema = SchemaFactory.createForClass(OrderedProduct); @Schema() export class Order { @Prop() _id: string @Prop({ type: Date, default: Date.now }) confirmedDate: Date @Prop({ type: Types.ObjectId, ref: OrderStatus.name }) orderStatus: OrderStatus @Prop() userName: string @Prop() email: string @Prop() phoneNumber: string @Prop({ type: [OrderedProductSchema] }) orderedProductArray: [OrderedProduct] }