[英]Using Subclasses in Mongoose Sub Document Array
我在這里和這里使用Mongoose找到了幾個繼承的解決方案。 當文檔存儲在普通集合中時,這些似乎工作正常。 但是,我無法弄清楚如何能夠將子類文檔的數組存儲在模型的子文檔中。
假設我們有一個對象“抽屜”,它包含一系列“服裝”物品,其中服裝對象實際上可以是幾種類型的服裝“襪子”,“襯衫”,“短褲”中的一種。
襪子,襯衫和短褲都是服裝的子類。
所以,我希望我的模型抽屜看起來像這樣......
var drawerSchema = mongoose.Schema({
// some drawer properties here
// ...
contents: [clothingSchema]
});
我嘗試過這種方法,但保存后,只有實際的clothingSchema屬性才會保存到數據庫中。 例如,如果我的服裝架構具有共同的大小屬性,它將被保存,但我的襯衫對象上名為“buttonDown”的屬性將不會被保存。
有沒有其他人需要進行這種建模,如果有的話,找到解決方案?
謝謝!
如果您可以在獨立集合上繼承Schemas,則可以使用一些外鍵。
var drawerSchema = new Schema({
contents: [{type: Schema.Types.ObjectId, ref: 'cloth'}],
});
var clothSchema = new Schema({
size: Number
});
// Then define extended Schemas (Shirt, Sock, Short...)
此方法還允許您在數據庫中只使用一次布料定義,以防止不必要的重復相同數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.