Mongoose: Le champ de tableau requis renvoie une erreur lorsqu'il est défini comme tableau vide

Créé le 10 févr. 2015  ·  3Commentaires  ·  Source: Automattic/mongoose

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.

backwards-breaking

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.

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes