Entfernen von Eins-und-Eins-Referenzen - Mungo

8

Ich habe eine Assignment schema welche Referenzen auf Groups und Projects hat.

%Vor%

Unten ist mein Asssignment Schema

%Vor%

Wenn ein Group/Project entfernt wird, wie kann ich mein Zuordnungsschema aktualisieren?

%Vor%

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?

%Vor%     
Shane 19.09.2015, 23:43
quelle

2 Antworten

12

Beziehungen:

  1. A one-to-one is a relationship , so dass ein Zustand nur einen hat Hauptstadt und eine Hauptstadt ist die Hauptstadt von nur einem Staat
  2. A one-to-many is a relationship so, dass eine Mutter viele hat Kinder, und die Kinder haben nur eine Mutter
  3. A 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.

%Vor%

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.

%Vor%

Entfernen Sie die Middleware

Du könntest das gleiche über middleware erreichen, wie Johnny es erwähnt hat, nur eine Korrektur dazu ..

%Vor%

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.

%Vor%     
Thalaivar 23.09.2015, 23:37
quelle
4

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:

  • Wenn eine Gruppe entfernt wird, möchten Sie den group -Verweis auf den _id dieser Gruppe aus allen Zuordnungsdokumenten entfernen.
  • Wenn ein Projekt entfernt wird, möchten Sie die projects -Array-Elementreferenzen aus allen Zuweisungsdokumenten aus dem Projekt _id entfernen.

Was Sie implementieren können als:

%Vor%     
JohnnyHK 22.09.2015 13:55
quelle