W ostatniej sekcji rozpoczęliśmy pracę nad upuszczeniem każdej z kolekcji, które stworzyliśmy pomiędzy
poszczególnymi testami, i zakończyliśmy sekcję, mówiąc, że to naprawdę nie wygląda na świetne podejście
tutaj z tego rodzaju Colback of Dune, mamy.
Cóż, jest to minus.
Oto zła rzecz.
Niestety nie możesz jednocześnie sporządzać wielu kolekcji wewnątrz Mongo.
I tak to prowadzi nas do podejścia podobnego do sekwencyjnego, w którym każdą
kolekcję sporządzamy pojedynczo.
Teraz, jeśli nie podoba ci się ten rodzaj odrzutu zagłady, który mamy tutaj, moglibyśmy zdecydowanie
zmienić to w pętlę nad wszystkimi różnymi kolekcjami, które mamy.
Zostawię to do wykonania tego refaktora, jeśli naprawdę jest to naprawdę ważne.
Zrobiłem też jedną dużą literówkę w ostatniej części Loxley, a teraz naprawimy je teraz.
Najpierw mongoose ładuje te kolekcje do Mongo D. B i one się odbijają, a Mongo D-B
Mungo właściwie normalizuje każdą nazwę kolekcji, obniżając obudowę całej nazwy kolekcji, więc wpisy na blogach z dużymi literami
P nie są poprawne.
Powinien być rzeczywiście zachowany lub posty na blogu z małymi literami.
Dlatego muszę się upewnić, że zaktualizuję to również wewnątrz instrukcji drop tutaj.
To było trochę literówki.
Zrobiłem jedną z literówki, którą znam.
Po prostu okropne.
Dwa z rzędu umieszczam tu niepoprawne instrukcje wymagające.
Tak więc powiedziałem, że potrzebuję użytkownika źródłowego.
To nie jest poprawna ścieżka.
W rzeczywistości chcemy przejść do jednego katalogu we wszystkich trzech przypadkach, ponieważ teraz znajdujemy się w katalogu
testowym.
Chcemy przejść do użytkowników kodu źródłowego i uzyskać różne pliki modeli.
Więc znowu dwa dwa literówki po mojej stronie.
Mój błąd.
DOBRZE.
Mam nadzieję, że możesz mi wybaczyć.
Zacznijmy więc pracę nad testami wokół skojarzeń.
Tak więc naszym celem jest teraz tworzenie komentarzy niektórych użytkowników, a posty na blogu kojarzą je ze sobą
w pewien sposób i po prostu widzą, jak działają, jak się razem bawią.
Spodziewam się, że możemy napisać kilka różnych testów wokół tych skojarzeń, więc zamierzam
stworzyć jednego użytkownika po jednym komentarzu i jednym wpisie na blogu przed każdym, a potem zobaczymy, jak te
wszystkie zadziałały razem.
Zacznijmy od zdefiniowania R przed każdym,
ponieważ z pewnością będzie on asynchroniczny przed każdym.
Niektórzy definitywnie dołączają do wykonanego callbacka.
Zamierzamy również stworzyć wewnątrz trzy różne zmienne, które chcę zastosować wewnątrz wszystkich
różnych bloków umieszczonych wewnątrz.
Opisałem ten blok, więc zamierzam zainicjować te trzy zmienne jednocześnie.
Pamiętam, że ta inicjalizacja polega na tym, jak zakres działa wewnątrz javascriptu.
Ponieważ chcemy przypisać te zmienne do tej zmiennej, musimy upewnić się, że znajdują
się one również w zewnętrznym zasięgu.
Znajdzie Joe post na blogu i komentarz.
Upewnij się, że masz mały wpis na blogu i małe litery c.
Pamiętaj, że pierwsze wersje Capitol wszystkich tych modeli wskazują, że jest to klasa modelu,
podczas gdy małe litery wskazują, że jest to instancja tego modelu.
OK, więc komentarz do wpisu na blogu Joe.
Teraz utworzymy jeden z każdego z tych wpisów i komentarzy na blogu użytkownika.
Powiedzmy, że Joe jest nowym użytkownikiem o imieniu Joe.
I zauważ, że nie będą jeszcze tworzyć żadnych skojarzeń.
Następnie zapiszę wpis na blogu jako New Blog Post.
Będzie miał świetny tytuł jazzowy.
A co z pewną treścią programu?
Naprawdę jest.
Czy jakoś tak.
Następnie dla komentarza zrobimy nowy komentarz z pewną zawartością treści w świetnym poście.
DOBRZE.
To prawie wszystko z trzech zasobów konfiguracyjnych.
Więc mam na myśli, że jestem na zewnątrz przez jedną sekundę, więc możesz zobaczyć całą linię na każdym z nich.
Wróćmy.
Więc znowu zauważysz, że nie zrobiłem niczego, co naprawdę sprawia, że wydaje się, że te rekordy
są powiązane w taki sposób.
Nie zrobiłem nic, aby wyglądało na to, że Joe jest właścicielem tego posta na blogu lub że ten komentarz
należy do tego wpisu na blogu lub że Joe sam napisał komentarz.
Tak jak nic nie jest związane między tutaj, a jeszcze do czterech z tych skojarzeń, musimy to zrobić w bardzo
bezpośredni sposób.
To jest jak bardzo bezpośrednie. Tworzymy te skojarzenia w bardzo bezpośredni sposób.
Najpierw zaczniemy od powiązania Joego z postem na blogu.
Załóżmy więc, że Joe jest autorem tego posta na blogu lub że ten wpis na blogu należy do niego.
Chcę bardzo szybko przejść do naszego pliku użytkownika i przypomnieć o tym blogu tutaj.
Użytkownik może mieć zbiór postów na blogu.
To jest w szyku tutaj.
Mogą mieć kolekcję postów na blogu, aby powiązać wpis blogu z użytkownikiem.
Możemy pisać posty na blogu Joe psa punkt push blogu i to wszystko.
Będziesz na to patrzeć i od razu pomyślisz sobie, że to wygląda jak zagnieżdżanie dokumentów.
No tak, bardzo podobnie bardzo podobne.
Więc mówimy, że Joe ma zbiór postów na blogu.
Chcę, aby miał on nowe powiązanie z tym postem na blogu, który właśnie stworzyliśmy.
Dlatego zamierzam wprowadzić tam cały blog.
Zauważysz bardzo ważne, że jest to trochę magii po stronie mangusty na blogach.
Powiedzieliśmy, że będzie to obiekt typu Object ID, ale tutaj po prostu wstawimy cały model.
To trochę magii na stronie mangusty.
Mongoose rozpozna, że po prostu wciskamy cały model i automatycznie
powie, że prawdopodobnie próbują założyć stowarzyszenie.
Więc nie zamierzam zepsuć całego modelu.
Po prostu ustawię ten obiekt I. RE. wpisz ten drugi wpis na blogu.
Tak wiele z tego automatycznie zrobi to, co właściwe, nawet jeśli
wprowadzimy cały model.
Teraz możemy ustawić powiązanie między postem na blogu i komentarzem w bardzo podobny sposób.
Powiedzmy więc, że komentarze do postu w blogu
Wciśnij komentarz.
Znowu post na blogu zawiera wiele komentarzy.
Jeśli więc otworzymy nasz schemat wpisu na blogu, to właśnie tutaj.
Komentarze to tablica, ponieważ jest to tablica.
Zamierzamy w tym modelu popchnąć ten model komentarza.
Mangus będzie pracował tutaj dokładnie tak samo.
Mówi się, że komentarze OK powinny być nagrywane ID obiektów i po prostu próbowały wepchnąć cały
model.
Są szanse, że będą chcieli przechowywać cały model, który chcą tylko odniesienia do identyfikatora obiektu.
Więc znowu mangusta ratuje nam dzień.
DOBRZE.
Ostatnia rzecz.
Ostatni.
W tym przypadku chcemy powiązać Joe z tym konkretnym komentarzem.
Więc tym razem jest to jeden związek.
Więc komentarz.
W jaki sposób jeden użytkownik to Joe.
Więc tym razem nie popychamy w szeregu użytkowników, którzy chcą tylko powiedzieć, że ten komentarz ma
dokładnie jednego autora i to jest Joe.
Tak więc, aby ustawić ten związek, mówimy, że komentarz jest głupim użytkownikiem, ponieważ Joe W tej chwili
jest to absolutnie magiczne.
Całkowita magia na stronie mangusty, ponieważ wiesz, że możesz coś w tym rodzaju Poza tym, że push jest jak zobaczenie
tego i powiedz OK, to jest model.
Tak, dzieje się coś magicznego, niezależnie od tego, jaki jest identyfikator obiektu.
Ale w tym przypadku jesteśmy tutaj jak dwa sposoby.
Mówimy, że ta własność użytkownika jest równa Joe.
Tak więc mangusta wyraźnie ma centrum za kulisami lub jakiś rodzaj przechwytywania na tym zadaniu tutaj
i powie, że próbują przypisać Joe do tej własności, ale to ma
być odniesienie.
Są więc szanse, że nie chcą tego robić tak, jak wszyscy Joe są równoznaczni z tym, że chcą tylko mieć odniesienie
do podpisanej przez Jilę.
Więc znowu duży kawałek magii po stronie mangusty.
W porządku.
Więc ryzykując, że zamieni się w naprawdę długą sekcję, zróbmy sobie krótką przerwę, a wtedy
odkryjemy, jak zapisać wszystkie te rekordy, ponieważ nie zostały one jeszcze zapisane w naszej bazie danych.
Aby szybko zastanowić się, w jaki sposób je uratowaliśmy, a następnie popracuj nad stwierdzeniem.