2017-07-10 163 views
0

我需要開發一個模型使用mogoose與一個字段,將保存我的對象屬性。我的問題是,這些屬性是完全以多變的,是這樣的:貓鼬動態模式字段

StockItem1 : { 
    sku: 23492349, 
    class: 'computer', 
    subclass: 'printer', 
    name: 'Hp Laserjet XXX', 
    qty: 120, 
    attr: { 
     laser: true, 
     speed: 1200, 
     color: white 
    } 
} 

StockItem2 : { 
    sku: 22342349, 
    class: 'homeappliance', 
    subclass: 'refrigerator', 
    name: 'GE Refrigerator', 
    qty: 23, 
    attr: { 
     stainlessstell: true, 
     doors: 2, 
     frostfree: true 
    } 
} 

attr屬性的字段是完全不同的取決於它屬於什麼類型的class/subclass

貓鼬中的attr字段應該使用哪種類型?我需要在未來過濾這些內容,例如在attr.doors == 2處獲得所有itens。

感謝您的幫助。

+0

['Mixed'](http://mongoosejs.com/docs/2.7.x/docs/schematypes.html)? – Mikey

+0

如果他們實際上是「依賴」,那麼你應該使用[「discriminators」](http://mongoosejs.com/docs/discriminators.html),這也將有助於你的「班級」任務。 –

回答

1

使用混合模式類型。這裏是docs。混合模式類型是一種「任何事情」類型的交易。您在定義數據時有靈活性,但會使您的集合更難以維護。