根据条件复选框将字段添加到架构中

时间:2018-10-11 20:33:45

标签: javascript node.js mongodb mongoose mongoose-schema

我正在尝试找出如何根据复选框的值来最佳设计Schema的方法:

var weatherSchema = mongoose.Schema({
day: Date,
minTtemperature: Number,
maxTemperature: Number,
snowy: Boolean,
amountOfSnow: Number,
snowAttribute2: String,
snowAttribute3: String

 })

我要完成的任务是仅在下雪值为True的日子中填充Snow属性。

我已经研究过 discriminators ,但我认为该选项仅在我想基于输入的值添加不同的属性或架构字段时有用。 我将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为discriminators可能是您应该考虑的。

这是原因:

  1. 您将使用模型继承。以后易于添加公共字段。您的数据似乎取决于一天中的type,并且似乎具有共同的字段(例如,日期,温度等),例如(晴天,暴风雨,下雪),这样类型说明符会有所帮助。
  2. 您将有一个descriminator键,可以将其称为dayType,现在您可以使用它来区分日期类型。这也使您可以轻松地轻松统计/查询在一个日期段内有多少sunny or snowy天。
  3. 基于该复选框,您可以简单地从一个模型switch切换到另一个模型,每个模型都有自己的特定数据。下雪天会有amountOfSnow等。