Ich habe eine Assignment schema
welche Referenzen auf Groups
und Projects
hat.
Unten ist mein Asssignment
Schema
Wenn ein Group/Project
entfernt wird, wie kann ich mein Zuordnungsschema aktualisieren?
Aus einigen Antworten in stackoverflow habe ich die Remove-Middleware kennengelernt, aber ich bin nicht sicher, wie ich sie für one-one and one-many
relation implementieren soll. Kann mir jemand ein Beispiel dafür zeigen?
Beziehungen:
one-to-one is a relationship
, so dass ein Zustand nur einen hat
Hauptstadt und eine Hauptstadt ist die Hauptstadt von nur einem Staat one-to-many is a relationship
so, dass eine Mutter viele hat
Kinder, und die Kinder haben nur eine Mutter many-to-many is a relationship
, so dass ein Buch geschrieben werden kann
mehrere Autoren oder Co-Autoren, während ein Autor mehrere schreiben kann
Bücher. eins-eins-Beziehung - Wenn ein Project/Group
entfernt wird, wie kann ich mein Assignment
Schema aktualisieren?
Normalerweise haben Sie ein project
auf ein assignment
und ähnlich ein assignment
auf ein project
abgebildet. Was Sie hier tun können, ist ein Projekt zu entfernen und dann das zugehörige project
im Zuweisungsmodell zu finden und deren Referenzen zu entfernen.
one-many-Beziehung - Wenn ein Project/Group
entfernt wird, wie kann ich mein Assignment
Schema aktualisieren?
In diesem Szenario entfernen wir ein Projekt und suchen dann alle assignments
, die zu dieser project
gehören, und entfernen ihre Referenz von ihnen. Hier ist die Situation, es kann viele Aufgaben für ein einzelnes Projekt geben.
Entfernen Sie die Middleware
Du könntest das gleiche über middleware
erreichen, wie Johnny es erwähnt hat, nur eine Korrektur dazu ..
Normalerweise können viele projects
zu einem assignment
und viele assignments
zu demselben project
gehören. Sie werden eine assignment
-Spalte in Ihrem Project
Schema haben, wobei sich ein Projekt auf mehrere Zuweisungen bezieht.
Hinweis: Middleware entfernen funktioniert nicht mit Modellen und funktioniert nur mit Ihren Dokumenten. Wenn Sie mit remove
Middleware gehen, stellen Sie in Ihrer Löschfunktion sicher, dass Sie zuerst project
nach ID finden und dann auf die zurückgegebene document
die Methode remove anwenden, damit das obige funktioniert ... Ihre Löschfunktion würde aussehen so.
In der remove
Middleware definieren Sie die Aktionen, die ausgeführt werden sollen, wenn ein Dokument des Modells dafür erstellt wird Das Schema wird über Model#remove
entfernt. Also:
group
-Verweis auf den _id
dieser Gruppe aus allen Zuordnungsdokumenten entfernen. projects
-Array-Elementreferenzen aus allen Zuweisungsdokumenten aus dem Projekt _id
entfernen. Was Sie implementieren können als:
%Vor%Tags und Links javascript node.js mongodb mongoose