¿Cómo completo un índice dentro de una lista? Digamos que tengo el siguiente esquema
const supplierSchema = new mongoose.Schema({ name: String, address: String, size: Number, ... (19 other fields) supplier_id: mongoose.Schema.Types.ObjectId, }); const itemsSchema = new mongoose.Schema({ name: String, date_time: {type: Date, default: Date.now}, supplier_id: mongoose.Schema.Types.ObjectId, item_id: mongoose.Schema.Types.ObjectId, }); const receiptSchema = new mongoose.Schema({ date_time: {type: Date, default: Date.now}, items: [itemSchema] receipt_id: mongoose.Schema.Types.ObjectId, }); const Receipt = mongoose.model('Photo', photoSchema);Mi recibo se llena de tal manera que
Receipt.findById(<insertID>) currently gives: { receipt_id: ObjectId("..."), date_time: ISODate("..."), items: [ { name: "...", date_time: ISODate("..."), supplier_id: ObjectId("..."), item_id: ObjectId("...") }, { name: "...", date_time: ISODate("..."), supplier_id: ObjectId("..."), item_id: ObjectId("...") } ], receipt_id: ObjectId("..."), } Me gustaría que complete la supplier ID con el name y address .
Puede completar a través de múltiples niveles usando populate :
Receipt .findById(<insertID>) .populate({ path: 'items', populate: { path: 'supplier_id' } }) .exec()Para obtener más información, consulte los documentos oficiales.