假设,我有两个模式,例如对于个人和公司.他们俩都应该有一个地址,包括街道名称,号码,邮编和城市.
避免在两个模式定义之间复制地址属性的策略是什么?我读了大约sub docs,但它们似乎(1)与一个父模式绑定,(2)总是出现在数组中.
解决方法
几乎太明显了,但这是我最终提出的:
然而,与我的第一个想法相反,分别定义可重用部分:不要在这里使用模式:
var addressSubschema = { street: String,number: String,zip: String,city: String }
只需将此部分包含在实际模式中:
var personSchema = new mongoose.Schema({ name: { type: String,required: true },title: { type: String },address: addressSubschema }); var companySchema = new mongoose.Schema({ name: { type: String,addresses: [addressSubschema] });