Eu tenho um campo de matriz com o seguinte esquema nesse campo:
parents:
type: 'Array'
required: true
Quando tento criar um documento com os seguintes dados:
data =
parents: []
Translation.create data, (err, translations) ->
console.log err, translations
Estou tendo o erro a seguir:
ValidationError: Path `parents` is required.
Se eu colocar um valor dentro da matriz, ele funcionará da seguinte maneira:
data =
parents: ['blah']
Da mesma forma, se eu remover required: true
do esquema, ele também começará a funcionar.
Uma matriz vazia não é considerada satisfatória para a validação "necessária"? Eu entendo que é falso em javascript, mas há muitos casos em que matrizes e objetos vazios são destinados a documentos Mongo.
Concordo, nós também tropeçamos nisso.
O comportamento assumido de required: true
para nós era a presença de uma matriz, em vez de uma matriz que requer pelo menos um elemento.
Concorde que os campos de array obrigatórios devem aceitar arrays vazios. Sempre pensei nisso dessa maneira, até que ontem tive um problema com o Mongoose.
Vou encerrar em favor de # 5139. Irá mudar este comportamento no 5.0.
Comentários muito úteis
Concorde que os campos de array obrigatórios devem aceitar arrays vazios. Sempre pensei nisso dessa maneira, até que ontem tive um problema com o Mongoose.