Mongoose: Как переопределить атрибут по умолчанию в дискриминаторе? - PullRequest
0 голосов
/ 17 февраля 2019

Использование Mongoose 5.4.0.

У меня есть схема File, которая имеет атрибуты type и stage:

let fileSchema = new Schema({
  ...
  type: {
    type: String,
    enum: ['image', 'log'],
    required: true
  },
  stage: {
    type: String,
    enum: [
      'upload',
      'corrected',
      'processed'
      ...
    ],
    required: true
  },
  ...
}, options)

const File = model('File', fileSchema)

У меня также есть дискриминатор в файлегде я хотел бы установить значение по умолчанию от stage до processed.

let imageSchema = new Schema({
  type: {
    default: 'processed'
  },
}, options)

const Image = File.discriminator('Image', imageSchema)

На основании этого SO вопроса от 2016 года я ожидал, что это сработает;однако, когда я запускаю свой набор тестов, я получаю следующую ошибку:

TypeError: Invalid schema configuration: `Processed` is not a valid type at path `type.default`.

Это работает, если я переопределю весь атрибут {type: ...}, который не очень СУХОЙ.Это возможно?Был ли неправильный ответ на вопрос, указанный выше?

...