Требуемые поддокументы Mongoose

Я определил следующие схемы Mongoose

var subSchema = new Schema({
    propertySub: {type: String, required: true}
});

var mainSchema = new Schema({
    mainProperty: {type: String, required: true},
    subs: [subSchema]
});

Как вы можете видеть, у subSchema есть обязательное свойство, и проблема в том, что я хочу, чтобы mainSchema обязательно имел хотя бы одно subSchema, но когда я отправляю

{
    "mainProperty" : "Main"
}

ничего не выходит из строя.

Я пробовал что-то вроде

subs: [{
    type: subSchema,
    required: true
}]

Но выдает следующее:

TypeError: Неопределенный тип undefined в массиве subs

Так или иначе, чтобы сделать это?, может быть, с validate я новичок в узле и мангусте, поэтому объяснение будет очень признательно


person J. Pichardo    schedule 27.03.2017    source источник


Ответы (1)


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

var mainSchema = new Schema({
    mainProperty: {type: String, required: true},
    subs: {
      type: [subSchema],
      required: true,
      validate: [notEmpty, "Custom error message"]
    }
});

function notEmpty(arr) {
  return arr.length > 0;
}
person AJ Funk    schedule 27.03.2017