Mongoose动态架构字段

时间:2017-07-10 01:39:51

标签: javascript node.js mongodb mongoose

我需要使用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

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用混合架构类型。这是docs。混合SchemaTypes是一种“任何事情”类型的交易。在定义数据时,您具有灵活性,但这会使您的集合难以维护。