Mongoose: El campo de matriz requerido arroja un error cuando se establece como una matriz vacía

Creado en 10 feb. 2015  ·  3Comentarios  ·  Fuente: Automattic/mongoose

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.

backwards-breaking

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.

Todos 3 comentarios

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.

¿Fue útil esta página
0 / 5 - 0 calificaciones