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
});
});