Tengo un campo de matriz con el siguiente esquema en ese campo:
parents:
type: 'Array'
required: true
Cuando intento crear un documento con los siguientes datos:
data =
parents: []
Translation.create data, (err, translations) ->
console.log err, translations
Obtuve el siguiente error:
ValidationError: Path `parents` is required.
Si pongo un valor dentro de la matriz, funciona, así:
data =
parents: ['blah']
Del mismo modo, si elimino required: true
del esquema, también comienza a funcionar.
¿Una matriz vacía no se considera satisfactoria para la validación "requerida"? Entiendo que es falso en javascript, pero hay muchos casos en los que las matrices y objetos vacíos están pensados en documentos de Mongo.
De acuerdo, también nos tropezamos con esto.
El comportamiento supuesto de required: true
para nosotros era la presencia de una matriz, en lugar de una matriz que requiere al menos un elemento.
Acepte que los campos de matriz obligatorios deben aceptar matrices vacías. Siempre lo había pensado de esta manera, hasta que ayer tuve un problema con Mongoose.
Voy a cerrar esto a favor del # 5139. Cambiará este comportamiento en 5.0.
Comentario más útil
Acepte que los campos de matriz obligatorios deben aceptar matrices vacías. Siempre lo había pensado de esta manera, hasta que ayer tuve un problema con Mongoose.