MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was ist das empfohlene Äquivalent zum kaskadierten Löschen in MongoDB für N:M-Beziehungen?

Was Sie tun, ist die beste und optimalste Art, dies in Mongo zu tun. Ich bin in einer ähnlichen Situation und nachdem ich alle möglichen Implementierungen des N:M-Entwurfsmusters durchgegangen bin, bin ich auch zu derselben Lösung gekommen.

Anscheinend ist dies keine Mongodb-Sache, sondern eher ein Konzept von NoSQL, bei dem die sich weniger ändernden Daten (Kurse) separat aufbewahrt werden können. Und da das Löschen eines Kurses kein sehr häufiger Vorgang sein wird, ist es machbar genug, alle Datensätze zu durchsuchen, um ihn zu entfernen.

Andererseits könnten Sie es so lassen, wie es ist. Ignorieren Sie in Ihrer Anwendungslogik einfach die Werte von Courses im Student-Dokument, die überhaupt keine reference_id im Course-Dokument haben. Aber in diesem Fall müssen Sie sicherstellen, dass alte gelöschte Course_ids nicht wiederverwendet werden.

ODER verwenden Sie einfach die Gelöscht-Flags im Kursdokument und erledigen Sie alles andere in Ihrer Anwendungslogik.