当Mongodb本身没有架构时,为什么Mongoose需要架构?

时间:2017-06-20 15:33:16

标签: node.js mongodb mongoose database

我想创建一个产品表,其中包含所有家用电器的信息,如冰箱,空气冷却器,电视e.t.c.我创建了类似这样的架构。

var productSchema = mongooseDB.Schema({
    Brand: {type: String, required: true},
    categoryId: Number,
    Color: String,
    Type: String,
    Price: Number,
    Size: Number
});

但问题是每个产品都有不同的属性。所以我想不出任何通用架构。我怎么会这样?或者我应该为每个特定产品创建一个单独的表?

3 个答案:

答案 0 :(得分:0)

我认为您在定义架构时要将选项strict设置为false。您可能应该有一些共同的领域来确定它是什么类型的产品。另请查看discriminators - 可能有用。

请注意注意:除非你有充分的理由否则不要设置为

就mongoose使用模式的原因而言,answer解释得很清楚。

答案 1 :(得分:0)

如果不满足您的需求,您根本不会被迫使用 Mongoose 。 您只需在应用中使用cut即可。

或者我猜您可以将 Mongoose 与空架构一起使用,并为strict指定false选项。
native MongoDB driver

答案 2 :(得分:0)

您可以使用鉴别器来获取mongoose中的多态行为。看看我对这个问题的回答: How to use mongoose schema when you have dynamic values?