Javascript 在Mongoose子文档数组中使用子类
我已经找到了一些使用Mongoose和的继承解决方案。当文档存储在一个正常的集合中时,它们似乎可以正常工作。但,我很难弄清楚如何在模型的子文档中存储子类文档数组 假设我们有一个对象“抽屉”,它包含一组“衣服”对象,其中衣服对象实际上可以是几种类型的衣服“袜子”、“衬衫”、“短裤”中的一种 袜子、衬衫和短裤都是服装的子类 所以,我想让我的模型抽屉看起来像这样Javascript 在Mongoose子文档数组中使用子类,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我已经找到了一些使用Mongoose和的继承解决方案。当文档存储在一个正常的集合中时,它们似乎可以正常工作。但,我很难弄清楚如何在模型的子文档中存储子类文档数组 假设我们有一个对象“抽屉”,它包含一组“衣服”对象,其中衣服对象实际上可以是几种类型的衣服“袜子”、“衬衫”、“短裤”中的一种 袜子、衬衫和短裤都是服装的子类 所以,我想让我的模型抽屉看起来像这样 var drawerSchema = mongoose.Schema({ // some drawer properties her
var drawerSchema = mongoose.Schema({
// some drawer properties here
// ...
contents: [clothingSchema]
});
我尝试过这种方法,但保存时,只有实际clothingSchema的属性保存到DB中。例如,如果我的衣服模式有一个公共尺寸属性,它将被保存,但我的衬衫对象上名为“buttonDown”的属性将不会被保存
是否有其他人需要进行此类建模,如果有,是否找到了解决方案
谢谢 如果可以在独立集合上使用继承的模式,则可以使用一些外键
var drawerSchema = new Schema({
contents: [{type: Schema.Types.ObjectId, ref: 'cloth'}],
});
var clothSchema = new Schema({
size: Number
});
// Then define extended Schemas (Shirt, Sock, Short...)
这种方法还允许在数据库中只定义一次cloth,从而防止不必要地重复相同的数据