1
У меня есть большой вложенный документ, который мне нужно заполнить.Как я могу заполнить несколько ссылок на модель во вложенном документе?
var PortfolioSchema = new Schema({
bonds : {
percentage : Number,
USA : {
percentage : Number,
treasury : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
},
municipal : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
},
corporate : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
}
},
international : {
percentage : Number,
developed : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
},
emergent : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
}
}
},
stocks : {
percentage : Number,
USA : {
percentage : Number,
largeCaps : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
},
mediumCaps : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
},
smallCaps : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
}
},
international : {
percentage : Number,
developed : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
},
emergent : {
percentage : Number,
securities : [ {
percentage : Number,
info : { type: ObjectId, ref: 'security' }
} ]
}
}
},
_goal : { type: ObjectId, ref: 'goal' },
createdAt : { type: Date, default: Date.now },
updatedAt : { type: Date, default: Date.now }
});
Как заполнить security
во всех этих полях? Я пробовал этот код ниже, но он не работает.
Portfolio
.findById(req.params.portfolio_id)
.populate("security")
.exec(function (err, portfolio) {
if (err) {
return res.status(404).json("Portfolio not found.");
}
res.render('portfolios/show.ejs', {
portfolio: portfolio
});
});