Występuję w scenariuszu, w którym zadaję sobie pytanie, czy muszę umieścić każdą jednostkę (Classroom ma wielu studentów) w osobnym obiekcie Meteor.collection lub raczej osadzić tablicę studentów wewnątrz obiektu w klasie i mieć jeden zbiór Meteor.collection Obiekt Classroom.Meteor: Osadzić dokumenty w dokumencie lub podzielić je na każdy obiekt kolekcji i połączyć je?
Instynkt podpowiada mi, aby umieścić Classroom i Studentów w swoich zbiorach meteorytów, ale nie jestem pewien, jak ustanowić jeden do wielu relacji między dwoma przedmiotami kolekcji Meteor.
Co, jeśli istnieje dużo więcej tradycyjnych relacji jeden do wielu, wiele do wielu przekłada się na sposób działania Meteor?
Moje pytanie wynika z faktu, że funkcja .aggregate() nie jest obsługiwana i zdaje sobie sprawę, że jest to niemożliwe bez wykonywania pętli rekursywnej w celu pobrania dokumentów zagnieżdżonych i osadzonych wewnątrz dokumentu nadrzędnego, w którym istnieje zbiór Meteor (np. Classroom) .
Dla relacji wiele do wielu, czy zaleca się przechowywanie obcych identyfikatorów w każdym z obiektów, czy też jedną kolekcję jako mapę, np. Rosters, która ma schemat {student_id: 123, classroomId: 234}? –
Z mojego doświadczenia poleciłbym przechowywanie identyfikatorów w każdym z obiektów, ponieważ zapytania są w ten sposób nieco łatwiejsze. Ale to naprawdę zależy od ogólnego przypadku użycia. Polecam zaimplementować małą próbkę dla obu możliwości i sprawdzić dodawanie, aktualizowanie, usuwanie i tworzenie zapytań złożoności. (Wybór odpowiedniego schematu pozwoli zaoszczędzić sporo pracy.) Jeśli używasz Meteor.publish() i Meteor.subscribe() w celu ograniczenia danych wysyłanych do klienta, sprawdź, czy twoje ograniczenia działają w obu przypadkach. –
Dziękuję za odpowiedź. opublikuj i subskrybuj to sprawiło, że jest to o wiele łatwiejsze w obsłudze! –