In this case, I need to assign multiple Many-to-One relationships, as you can see below:
var portfolioSchema = new Schema({
volatility : Number,
bonds : {
percentage : { type: Number, default: 0.6 },
USA : {
percentage : { type: Number, default: 0.7 },
treasury : {
percentage : { type: Number, default: 0.4 },
securities : [ { type: ObjectId, ref: 'Security' } ]
},
municipal : {
percentage : { type: Number, default: 0.2 },
securities : [ { type: ObjectId, ref: 'Security' } ]
},
corporate : {
percentage : { type: Number, default: 0.4 },
securities : [ { type: ObjectId, ref: 'Security' } ]
}
},
international : {
percentage : { type: Number, default: 0.3 },
developed : {
percentage : { type: Number, default: 0.7 },
securities : [ { type: ObjectId, ref: 'Security' } ]
},
emergent : {
percentage : { type: Number, default: 0.3 },
securities : [ { type: ObjectId, ref: 'Security' } ]
}
}
},
stocks : {
percentage : { type: Number, default: 0.4 },
USA : {
percentage : { type: Number, default: 0.7 },
largeCaps : {
percentage : { type: Number, default: 0.4 },
securities : [ { type: ObjectId, ref: 'Security' } ]
},
mediumCaps : {
percentage : { type: Number, default: 0.4 },
securities : [ { type: ObjectId, ref: 'Security' } ]
},
smallCaps : {
percentage : { type: Number, default: 0.2 },
securities : [ { type: ObjectId, ref: 'Security' } ]
}
},
international : {
percentage : { type: Number, default: 0.3 },
developed : {
percentage : { type: Number, default: 0.7 },
securities : [ { type: ObjectId, ref: 'Security' } ]
},
emergent : {
percentage : { type: Number, default: 0.3 },
securities : [ { type: ObjectId, ref: 'Security' } ]
}
}
},
_goal : { type: ObjectId, ref: 'Goal' }
});
var securitySchema = new Schema({
name : { type: Date, required: true },
avgReturn : Number,
avgRisk : Number,
percentage : Number
});
However, It seems to me that it would be easier to simply use an Array
data type instead of [ { type: ObjectId, ref: 'Security' } ]
.
I am not sure about what I should do. Anyone would know the appropriate way to do this? Thank you!