У меня есть поле массива со следующей схемой в этом поле:
parents:
type: 'Array'
required: true
Когда я пытаюсь создать документ со следующими данными:
data =
parents: []
Translation.create data, (err, translations) ->
console.log err, translations
Я получаю следующую ошибку:
ValidationError: Path `parents` is required.
Если я помещаю значение в массив, он работает, например:
data =
parents: ['blah']
Точно так же, если я удалю required: true
из схемы, он также начнет работать.
Не считается ли пустой массив удовлетворительным для «обязательной» проверки? Я понимаю, что в javascript это неверно, но есть много случаев, когда в документах Mongo предназначены пустые массивы и объекты.
Договорились, мы тоже запутались в этом.
Предполагаемым поведением required: true
для нас было наличие массива, а не массива, для которого требуется хотя бы один элемент.
Согласитесь, что обязательные поля массива должны принимать пустые массивы. Я всегда так думал, пока вчера у меня не возникла проблема с Mongoose.
Закрою это в пользу №5139. Изменит это поведение в 5.0.
Самый полезный комментарий
Согласитесь, что обязательные поля массива должны принимать пустые массивы. Я всегда так думал, пока вчера у меня не возникла проблема с Mongoose.