Ich habe ein Array-Feld mit dem folgenden Schema für dieses Feld:
parents:
type: 'Array'
required: true
Wenn ich versuche, ein Dokument mit den folgenden Daten zu erstellen:
data =
parents: []
Translation.create data, (err, translations) ->
console.log err, translations
Ich bekomme folgenden Fehler:
ValidationError: Path `parents` is required.
Wenn ich einen Wert in das Array einfüge, funktioniert es wie folgt:
data =
parents: ['blah']
Wenn ich required: true
aus dem Schema entferne, funktioniert es auch.
Wird ein leeres Array für die "erforderliche" Validierung nicht als zufriedenstellend angesehen? Ich verstehe, dass es in Javascript falsch ist, aber es gibt viele Fälle, in denen leere Arrays und Objekte in Mongo-Dokumenten beabsichtigt sind.
Zugegeben, wir sind darüber auch gestolpert.
Das angenommene Verhalten von required: true
für uns das Vorhandensein eines Arrays und nicht eines Arrays, das mindestens ein Element erfordert.
Stimmen Sie zu, dass erforderliche Array-Felder leere Arrays akzeptieren sollten. Ich habe immer so darüber nachgedacht, bis ich gestern ein Problem mit Mongoose hatte.
Werde das zugunsten von #5139 schließen. Wird dieses Verhalten in 5.0 ändern.
Hilfreichster Kommentar
Stimmen Sie zu, dass erforderliche Array-Felder leere Arrays akzeptieren sollten. Ich habe immer so darüber nachgedacht, bis ich gestern ein Problem mit Mongoose hatte.