【问题标题】:Add fields to schema base on conditional checkbox根据条件复选框将字段添加到架构
【发布时间】:2018-10-12 05:53:10
【问题描述】:

我正在试图弄清楚如何根据复选框的值最好地设计架构:

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

 })

我想要完成的是仅在下雪值为真的日子填充雪属性。

我已经探索过鉴别器,但我认为此选项仅在我想根据输入值添加不同的属性或架构字段时才有用。 非常感谢任何帮助。

【问题讨论】:

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


    【解决方案1】:

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

    原因如下:

    1. 您将使用模型继承。稍后易于添加常用字段。您的数据似乎依赖于当天的type,并且似乎有共同的字段(如日期、温度等),例如(晴天、暴风雨、下雪),这样类型识别器会很有帮助。
    2. 您将拥有一个descriminator 键,我们称之为dayType,您现在可以使用它来区分日期类型。这还可以让您轻松计算/查询您在一个日期期间有多少 sunny or snowy 天。
    3. 基于该复选框,您可以简单地switch 一个模型到另一个模型,每个模型都有自己的特定数据。下雪天会有amountOfSnow 等。

    【讨论】:

    • 感谢@Akrion 对此的解释。我将尝试这种方法。
    • 一个问题...在我的情况下,我必须根据两个复选框进行区分,我可以有多个密钥鉴别器吗?
    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多