1
00:00:00,690 --> 00:00:06,510
Bentornato a questo video, vi mostrerò l'altro modo di associare i dati usando i riferimenti

2
00:00:06,510 --> 00:00:07,430
agli oggetti.

3
00:00:07,620 --> 00:00:12,600
Quindi, prima di iniziare, creerò un nuovo file qui nella stessa directory e

4
00:00:12,600 --> 00:00:13,260
chiamerò questo.

5
00:00:13,540 --> 00:00:15,590
Riferimenti insegnati J.

6
00:00:16,530 --> 00:00:22,500
E ho intenzione di copiare tutto in quel file dalla lezione precedente e ho intenzione

7
00:00:22,500 --> 00:00:23,560
di modificare questo.

8
00:00:23,610 --> 00:00:28,310
che usiamo solo per non essere in conflitto e non sovrascriviamo quello che abbiamo appena fatto in precedenza.

9
00:00:28,310 --> 00:00:30,730
La prima cosa che farò è cambiare il database

10
00:00:30,900 --> 00:00:35,610
Quindi farò anche il nome blogg demo underscore.

11
00:00:35,820 --> 00:00:36,410
Tutto ok.

12
00:00:36,540 --> 00:00:39,490
E poi ho intenzione di andare avanti e sbarazzarmi di molte cose qui.

13
00:00:39,690 --> 00:00:43,410
Praticamente tutto a parte il nostro schema che abbiamo nei modelli.

14
00:00:43,650 --> 00:00:48,230
E inizierò parlando di cosa significa fare riferimento ai dati anziché incorporarli.

15
00:00:48,480 --> 00:00:53,940
Quindi quello che abbiamo fatto l'ultima volta nell'ultimo video è stato l'incorporamento dei dati in cui un utente ha

16
00:00:53,940 --> 00:00:57,700
un aspetto simile a questo con un nome e c'è anche una e-mail.

17
00:00:57,720 --> 00:01:05,190
E poi c'è un array POST e ogni post di quell'array è stato

18
00:01:05,190 --> 00:01:11,910
effettivamente memorizzato all'interno dell'array proprio come questo, dove titolo e contenuto.

19
00:01:11,910 --> 00:01:12,790
Eccoci.

20
00:01:13,590 --> 00:01:20,270
E noi ne conosciamo cinque sei quanti ne vogliamo e ascoltiamo post diversi all'interno dell'array POST.

21
00:01:20,570 --> 00:01:27,990
Ora quello che ti mostrerò in questa lezione è molto simile, tranne quello che effettivamente facciamo è un poster array e

22
00:01:27,990 --> 00:01:33,380
all'interno di tutto ciò che stiamo andando a memorizzare qui piuttosto che i post effettivi.

23
00:01:33,570 --> 00:01:37,980
Avremo un sacco di ID quindi avremo questi ID lunghi che sembrano così e

24
00:01:41,430 --> 00:01:42,120
così via.

25
00:01:42,270 --> 00:01:46,250
E queste idee corrisponderanno ai singoli post.

26
00:01:46,250 --> 00:01:55,230
Quindi avremo un post qui che ha un ID uguale a questo e avrà il titolo che hai chiamato

27
00:01:55,230 --> 00:01:57,130
qualcos'altro e così via.

28
00:01:57,480 --> 00:02:03,980
Quindi, ancora una volta la differenza principale è che stiamo memorizzando gli ID da cui proviene il riferimento al nome.

29
00:02:04,140 --> 00:02:09,520
Stiamo facendo riferimento all'ID di un altro post piuttosto che incorporare l'intero post.

30
00:02:09,900 --> 00:02:11,180
OK, allora iniziamo.

31
00:02:11,370 --> 00:02:17,280
E dobbiamo apportare alcune modifiche al nostro schema piuttosto che avere i post come una matrice di schemi di post.

32
00:02:17,610 --> 00:02:20,400
Ciò che effettivamente facciamo lo rende un array.

33
00:02:20,490 --> 00:02:25,030
Ma passeremo un oggetto e l'oggetto assomiglierà a questo.

34
00:02:25,080 --> 00:02:27,190
Intendo spazi solo un po '.

35
00:02:27,420 --> 00:02:37,580
E il nostro oggetto avrà due tipi di proprietà principali e ref e il tipo

36
00:02:37,590 --> 00:02:47,090
sarà manuesa che i tipi di schema dot object id e ref saranno post.

37
00:02:47,130 --> 00:02:49,020
Quindi parliamo di cosa ho appena fatto qui.

38
00:02:49,050 --> 00:02:55,740
Ho detto che nello schema utente c'è un attributo post ed è un array ma piuttosto che un array

39
00:02:55,740 --> 00:02:58,110
di post come quello che abbiamo qui.

40
00:02:58,750 --> 00:03:00,870
O è una matrice dello schema del post.

41
00:03:00,870 --> 00:03:03,570
In realtà è una serie di ID oggetto.

42
00:03:03,660 --> 00:03:06,080
E questo è solo il modo in cui scriviamo questa sintassi.

43
00:03:06,330 --> 00:03:11,890
È un id oggetto mongoose che appartiene a un post e possiamo salvare.

44
00:03:12,120 --> 00:03:16,320
E solo per essere sicuri di non aver fatto nulla di sbagliato, possiamo eseguire il file assicurandoci di non ottenere un errore.

45
00:03:17,310 --> 00:03:18,560
Grande.

46
00:03:18,600 --> 00:03:23,520
Ora iniziamo creando un singolo utente che possiamo quindi aggiungere post in seguito.

47
00:03:23,640 --> 00:03:37,020
questo darà una email di Bob a gmail dot com e un nome sarà Bob Filcher e lo salveremo e quindi lo lasceremo in questo modo

48
00:03:37,410 --> 00:03:43,680
e penseremo che questo sarà lavorare piuttosto che aggiungere la richiamata in.

49
00:03:43,920 --> 00:03:45,770
Così l'utente crea e

50
00:03:45,810 --> 00:03:48,830
Quindi questo creerà il nostro primo utente.

51
00:03:48,900 --> 00:03:53,160
Quindi eseguiamo il file.

52
00:03:53,160 --> 00:03:53,700
Tutto ok.

53
00:03:53,880 --> 00:03:58,630
Quindi non vediamo nulla, ma potremmo andare a Mangu e dare un'occhiata.

54
00:03:58,640 --> 00:04:11,370
Quindi mostra anche la demo del registro di utilizzo di Digby e poi possiamo trovare gli utenti e abbiamo un utente con il suo

55
00:04:11,360 --> 00:04:12,070
nome.

56
00:04:12,150 --> 00:04:19,170
Belcher e-mail Bob a gmail dot com e post vuoti perché non abbiamo ancora aggiunto alcun post.

57
00:04:19,170 --> 00:04:19,740
Bob

58
00:04:19,920 --> 00:04:25,800
Quindi andiamo fuori di qui e la prossima cosa che voglio fare è aggiungere un post a questo utente, quindi ho intenzione

59
00:04:25,800 --> 00:04:31,620
di sbarazzarmi di quella dichiarazione di creazione e uscirò in modo che tu possa vederlo e cosa farò fare è fare un

60
00:04:31,620 --> 00:04:32,330
nuovo post.

61
00:04:32,430 --> 00:04:38,080
Quindi post-doc creare e lo stiamo facendo indipendentemente dall'utente.

62
00:04:38,190 --> 00:04:49,530
hamburger e poi il contenuto e non solo riempirlo di bla bla bla di leggi per ora proprio così e salverà e questo dovrebbe farci

63
00:04:50,550 --> 00:04:57,940
un post e solo per assicurarci che questa volta aggiungiamo l'errore di callback e post e

64
00:04:57,940 --> 00:05:05,650
cancelleremo quel post di log e non gestiremo l'errore solo per il tempo necessario ed eseguiremo il file.

65
00:05:05,650 --> 00:05:12,510
Quindi stiamo facendo quel post e gli daremo un titolo su come cucinare il miglior

66
00:05:13,980 --> 00:05:18,120
E ora abbiamo aggiunto un nuovo post al database con un ID.

67
00:05:18,160 --> 00:05:22,950
Ricorda questo I. D. ricorda il tutto 5 6 2 5 8 3 7 8.

68
00:05:22,960 --> 00:05:23,530
Ora sto solo scherzando.

69
00:05:23,530 --> 00:05:25,630
Ma ricorda quello che sembra.

70
00:05:25,780 --> 00:05:28,600
E poi abbiamo il nostro contenuto e poi il nostro titolo.

71
00:05:28,600 --> 00:05:28,920
Tutto ok.

72
00:05:28,930 --> 00:05:30,790
Quindi andiamo fuori di lì.

73
00:05:30,810 --> 00:05:35,880
Quindi quello che vogliamo fare è parlare di come possiamo collegare un post e un utente che usa quell'ID.

74
00:05:36,310 --> 00:05:40,090
E per farlo, in realtà sto andando a seguire i passaggi per creare un altro post.

75
00:05:40,090 --> 00:05:42,230
Chiamiamo questo come cucinare il miglior hamburger.

76
00:05:42,390 --> 00:05:51,280
Seconda parte e questo farà un nuovo post e una volta salvato quel post andremo a cercare

77
00:05:51,280 --> 00:05:52,190
l'utente PABX.

78
00:05:52,260 --> 00:05:59,480
Quindi faremo trovare un utente e troveremo uno e troveremo il tuo nome.

79
00:05:59,760 --> 00:06:07,370
Facciamo un'e-mail questa volta, dove l'e-mail è Bob at gmail dot com e poi eseguiremo questo codice

80
00:06:08,120 --> 00:06:12,640
in seguito e poi scopriremo che chiameremo questo utente trovato.

81
00:06:13,490 --> 00:06:14,250
OK.

82
00:06:14,350 --> 00:06:15,380
Quindi sta succedendo molto.

83
00:06:15,670 --> 00:06:18,760
Quindi stiamo creando un post una volta che il post è stato creato.

84
00:06:18,880 --> 00:06:24,850
In questo caso, stiamo trovando un utente in questo caso che

85
00:06:24,850 --> 00:06:29,860
abbiamo già creato e quindi gestiremo l'errore se necessario.

86
00:06:30,490 --> 00:06:35,800
Altrimenti aggiungeremo il post ai post degli utenti.

87
00:06:35,930 --> 00:06:45,700
quello che abbiamo chiamato qui e stiamo andando a spingere in push post e post si riferisce al post che abbiamo appena creato che era

88
00:06:46,380 --> 00:06:53,100
sicuro il database con titolo Come cucinare il Vestberg o al contenuto bla bla bla bla bla.

89
00:06:53,110 --> 00:06:56,570
Quindi abbiamo trovato i post degli utenti che è

90
00:06:56,800 --> 00:06:58,450
Lo salviamo se funziona.

91
00:06:58,560 --> 00:07:03,760
Abbiamo una variabile post che memorizza il post e quindi raffina l'utente.

92
00:07:03,900 --> 00:07:07,090
In questo caso quello con l'email Bob at gmail dot com.

93
00:07:07,210 --> 00:07:14,340
E poi se lo troviamo, aggiungeremo il nuovo post agli array di utenti.

94
00:07:14,620 --> 00:07:15,880
Allora salviamolo.

95
00:07:16,060 --> 00:07:20,160
Quindi dopo abbiamo bisogno di fare un altro utente trovato salva.

96
00:07:20,800 --> 00:07:31,990
bisogno di un altro callback e questo avrà errori e chiameremo questi dati solo per rendere davvero chiaro cosa sta succedendo.

97
00:07:31,990 --> 00:07:33,450
E sì, abbiamo

98
00:07:33,580 --> 00:07:36,880
E qui sto solo andando di nuovo a

99
00:07:39,610 --> 00:07:46,720
gestire l'errore e poi se non ci sono errori andando a cancellare i dati del registro.

100
00:07:46,790 --> 00:07:48,750
L'uomo giusto abbiamo molto qui.

101
00:07:48,760 --> 00:07:56,200
Quindi crea un post trova l'utente e poi prendi quel post spingerlo nei post degli utenti, salva l'utente

102
00:07:56,200 --> 00:07:59,120
e, quando ciò accade, stampa i dati.

103
00:07:59,350 --> 00:08:03,010
Vediamo cosa otteniamo.

104
00:08:03,000 --> 00:08:03,910
Tutto ok.

105
00:08:04,140 --> 00:08:04,960
Quindi ha funzionato.

106
00:08:05,110 --> 00:08:08,640
Ecco il nostro nome utente Email di Bob Belcher.

107
00:08:08,640 --> 00:08:15,360
Ecco l'id utente e quindi invece dei post tutto ciò che abbiamo è un array con un elemento ed è un

108
00:08:15,390 --> 00:08:21,500
ID oggetto contro quando abbiamo l'embed J. S. dove lavoravamo con i dati incorporati.

109
00:08:21,550 --> 00:08:26,230
Avevamo l'intero post in modo tale che al posto di questo array abbiamo effettivamente visto i dati.

110
00:08:26,380 --> 00:08:27,730
Ora stiamo solo vedendo

111
00:08:30,470 --> 00:08:31,390
l'ID così.

112
00:08:31,540 --> 00:08:33,210
Quindi andiamo ad aggiungerne un'altra.

113
00:08:33,390 --> 00:08:35,100
Quindi faremo la parte 3.

114
00:08:35,400 --> 00:08:38,580
E il testo di quello invece di blah blah blah.

115
00:08:38,700 --> 00:08:41,370
Sarà semplicemente riduttivo solo così che è più facile distinguere.

116
00:08:41,380 --> 00:08:45,370
E il console aggiungerà quel post.

117
00:08:45,370 --> 00:08:51,330
Ora abbiamo due ID oggetto qui e ognuno corrisponde a un singolo post.

118
00:08:51,700 --> 00:08:52,660
OK.

119
00:08:53,010 --> 00:08:55,020
Quindi è così che possiamo associarli.

120
00:08:55,140 --> 00:09:00,290
Ma ora abbiamo bisogno di capire come prendere questo ID oggetto e trovare il post corretto.

121
00:09:00,580 --> 00:09:02,260
Diciamo che vogliamo trovare un utente.

122
00:09:02,500 --> 00:09:08,190
E poi voglio scoprire che anche gli utenti postano e non solo gli ID ma voglio tutti i dati.

123
00:09:08,560 --> 00:09:14,710
Quindi ho intenzione di svuotare la console e ho intenzione di commentare questo mostro qui.

124
00:09:14,720 --> 00:09:21,630
E quindi quello che vogliamo fare è trovare l'utente e quindi trovare tutti i post per quell'utente.

125
00:09:21,730 --> 00:09:23,990
E c'è in realtà un modo per farlo in una volta.

126
00:09:24,120 --> 00:09:25,840
Quindi dobbiamo prima trovare l'utente.

127
00:09:26,010 --> 00:09:31,990
In questo modo, l'utente troverà e troveremo di nuovo uno e poi dovremo passare e quello che

128
00:09:32,230 --> 00:09:37,100
stiamo cercando sarà l'email in cui si trova Bob at gmail dot com.

129
00:09:38,250 --> 00:09:39,750
E poi questo è qualcosa di nuovo.

130
00:09:39,900 --> 00:09:41,400
Quindi non abbiamo visto questo prima.

131
00:09:41,560 --> 00:09:51,190
Dot popola che riempiremo i post e poi dot exec e spiegherò tutto questo in un attimo.

132
00:09:55,920 --> 00:09:57,420
OK.

133
00:09:58,360 --> 00:10:02,920
Quindi, cosa abbiamo fatto qui, abbiamo scritto una query più lunga che ha più parti.

134
00:10:02,910 --> 00:10:04,570
Quindi stiamo cercando un utente.

135
00:10:05,010 --> 00:10:12,210
cambiando questo popolò i post che in realtà popoleranno i post sul campo e cercheranno tutti quegli ID oggetto

136
00:10:12,220 --> 00:10:19,500
che troveranno i dati corretti e poi li incolleremo nell'array post e quindi eseguiremo exec per avviare effettivamente la query.

137
00:10:19,500 --> 00:10:20,580
E poi stiamo

138
00:10:20,590 --> 00:10:21,720
Quindi è un po 'strano.

139
00:10:21,970 --> 00:10:23,220
Ne stiamo trovando uno.

140
00:10:23,380 --> 00:10:28,870
Ma notiamo che non stiamo usando una callback qui e stiamo cambiando popolato e quindi lo stiamo

141
00:10:28,870 --> 00:10:33,070
dando a Dot exec alla fine, che in realtà farà accadere tutto questo.

142
00:10:33,120 --> 00:10:38,000
Quindi passiamo il callback in exec perché è quando eseguiamo il codice.

143
00:10:38,470 --> 00:10:39,920
E se lo avessimo fatto bene

144
00:10:39,970 --> 00:10:41,560
Quindi controlliamo se c'è un errore.

145
00:10:41,560 --> 00:10:44,690
Primo Consiglio che registra l'errore.

146
00:10:45,070 --> 00:10:53,590
Altrimenti si spera che il nostro utente abbia tutti i post pre-compilati all'interno

147
00:10:54,010 --> 00:11:00,400
dell'attributo posts, quindi cancellerà quell'utente e proveremo a farlo.

148
00:11:00,390 --> 00:11:03,780
Assicurati che tutto sia commentato tranne questo.

149
00:11:03,970 --> 00:11:05,230
Corriamo.

150
00:11:06,350 --> 00:11:06,940
E tu cosa sai

151
00:11:06,940 --> 00:11:07,610
Ha funzionato.

152
00:11:07,870 --> 00:11:12,610
Quindi otteniamo un nome utente è Bob Belsher e-mail Bob a gmail dot com.

153
00:11:13,030 --> 00:11:15,730
Ma ora post non è solo un array di ID oggetto.

154
00:11:15,750 --> 00:11:18,570
In realtà ha il post completo lì.

155
00:11:18,580 --> 00:11:19,460
Entrambi.

156
00:11:19,650 --> 00:11:24,070
Quindi puoi vedere che ha un'idea di ciò che abbiamo contenuto e titolo titolo e titolo.

157
00:11:24,120 --> 00:11:29,360
Quindi, per riassumere tutto ciò che abbiamo fatto, memorizziamo i dati che assomigliano a questo qui con gli ID oggetto.

158
00:11:29,470 --> 00:11:37,710
Puoi vedere i due ID degli oggetti e poi abbiamo fatto una seconda query per recuperare i dati e

159
00:11:38,080 --> 00:11:43,870
abbiamo compilato il post Saray con tutti i dati usando populate che exec.

160
00:11:44,050 --> 00:11:47,690
Quindi ti starai chiedendo perché useremmo l'uno contro l'altro.

161
00:11:47,710 --> 00:11:52,220
Quando dovremmo incorporare i dati rispetto a quando dovremmo usare riferimenti a ID di oggetti.

162
00:11:52,210 --> 00:11:56,530
Ed è una domanda davvero buona e davvero importante che verrà affrontata mentre li usiamo al posto

163
00:11:56,800 --> 00:11:57,570
del nostro campo.

164
00:11:57,730 --> 00:12:00,490
La risposta breve è che dipende.

165
00:12:00,490 --> 00:12:04,510
E puoi ottenere usando uno stile e praticamente ogni situazione.

166
00:12:04,500 --> 00:12:09,820
Comunque di solito ce n'è uno che usa riferimenti o incorpora dati che si prestano meglio a

167
00:12:09,850 --> 00:12:14,500
qualsiasi cosa tu stia facendo e ne parleremo mentre passiamo attraverso il tuo campo e

168
00:12:14,500 --> 00:12:19,670
iniziamo ad aggiungere commenti e utenti e aggiungiamo valutazioni e foto e tutte queste diverse caratteristiche.

169
00:12:19,720 --> 00:12:22,750
Alcuni di questi verranno incorporati e alcuni di essi verranno referenziati
