Добавить поля в схему на основе условного флажка - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь выяснить, как лучше спроектировать базу Схемы на основе значения флажка:

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

 })

Что я хочу сделать, так это заполнять атрибуты Snow только в те дни, когда значение snowy равноВерно.

Я исследовал дискриминаторов , но я думаю, что эта опция полезна только тогда, когда я хочу добавить различные атрибуты или поля схемы на основе значения ввода.Я буду очень признателен за любую помощь.

1 Ответ

0 голосов
/ 12 октября 2018

Я бы сказал, что discriminators, вероятно, то, что вы должны рассмотреть.

Вот почему:

  1. Вы будете использовать наследование модели.Легко добавить общие поля позже.Кажется, что ваши данные зависят от type дня и имеют общие поля (например, день, температура и т. Д.), Например (солнечный, штормовой, снежный), так что описатель типа будет полезным.
  2. Вы будетеИмея клавишу descriminator, давайте назовем ее dayType, с помощью которой вы теперь можете различать типы дней.Это также позволит вам с легкостью подсчитать / запросить, сколько sunny or snowy дней вы имели в периоде дат с легкостью.
  3. На основе этого флажка вы можете просто switch модели переходить от одной к другой, где каждаябудет иметь свои собственные конкретные данные.Снежные дни будут иметь amountOfSnow и т. Д.
...