J'ai un champ de tableau avec le schéma suivant sur ce champ :
parents:
type: 'Array'
required: true
Lorsque j'essaie de créer un document avec les données suivantes :
data =
parents: []
Translation.create data, (err, translations) ->
console.log err, translations
J'obtiens l'erreur suivante :
ValidationError: Path `parents` is required.
Si je mets une valeur dans le tableau, cela fonctionne, comme ceci :
data =
parents: ['blah']
De même, si je supprime le required: true
du schéma, il commence également à fonctionner.
Un tableau vide n'est-il pas considéré comme satisfaisant pour la validation « requise » ? Je comprends que c'est faux en javascript, mais il existe de nombreux cas où des tableaux et des objets vides sont destinés aux documents Mongo.
D'accord, nous avons trébuché là-dessus aussi.
Le comportement supposé de required: true
pour nous était la présence d'un tableau, plutôt qu'un tableau qui nécessite au moins un élément.
Convenez que les champs de tableau obligatoires doivent accepter les tableaux vides. J'y ai toujours pensé de cette façon, jusqu'à ce que j'aie un problème avec Mongoose hier.
Je vais fermer ça en faveur de #5139. Changera ce comportement dans 5.0.
Commentaire le plus utile
Convenez que les champs de tableau obligatoires doivent accepter les tableaux vides. J'y ai toujours pensé de cette façon, jusqu'à ce que j'aie un problème avec Mongoose hier.