簡體   English   中英

在Mongoose子文檔數組中使用子類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM