2016-08-06 3 views
0

Ich habe einen übergeordnetes Schema Beitrag außer Kraft zu setzen:Wie Eltern Schemafeld mit Scheidern mit mongoosejs

{ 
    title: { 
     type: String, 
     required: true 
    }, 
    authors: { 
     type: [String], 
     required: true 
    } 
} 

Ich will ein Kind Schema macht vererben auf diesem mit der Unterscheidungs ​​() Mungo-Funktion, aber ich mag hinzufügen zusätzliche Validierung für das Feld authors, um sicherzustellen, dass das Array nicht leer ist.

Wie kann ich das tun?

Auch könnte mich jemand auf eine gute Dokumentation über Mungo-Diskriminatoren verweisen. Die offizielle Dokumentation war bei meiner Suche nicht hilfreich.

Antwort

0

Würde Ihnen das helfen?

var Parent = mongoose.model('Parent', new mongoose.Schema({ 
    title: {...}, 
    author: {...} 
})) 

var Child = Parent.discriminator('Child', new mongoose.Schema({ 
    author: { 
     default: ['something'] 
    } 
})) 

Seien Sie sich bewusst sein, dass Sie Elternteil umfassen müssen, bevor Child (scheinbar: o)

+0

Ah ok, so dass die Eltern Attribute nur von Kind-Attribute außer Kraft gesetzt werden kann? – jenny

+0

Ja, Sie können entweder neue Felder einfügen oder das gesamte Feld in einen anderen Typ umschreiben – PETEroid

+0

Seien Sie jedoch vorsichtig beim Überschreiben von Feldern. Wenn Sie feststellen, dass Sie in den diskriminierten Klassen übergeordnete Felder überschreiben und Typen ändern, möchten Sie vielleicht Ihr Design überdenken und vielleicht die Definition dieses Feldes auf die "Unterklassen" übertragen. – c1moore