1
00:00:00,690 --> 00:00:07,430
Bienvenue sur cette vidéo je vais vous montrer l'autre façon d'associer les données qui est en utilisant des références d'objets.

2
00:00:07,620 --> 00:00:13,260
Donc, avant de commencer, je vais créer un nouveau fichier ici dans le même répertoire et j'appellerai celui-ci.

3
00:00:13,540 --> 00:00:15,590
Références enseignées J.

4
00:00:16,530 --> 00:00:23,560
Et je vais simplement tout copier dans ce fichier de notre leçon précédente et je vais changer cela.

5
00:00:23,610 --> 00:00:30,730
La première chose que je vais faire est de changer la base de données que nous utilisons juste pour que nous ne sommes pas des choses contradictoires et nous n'écrasons pas ce que nous avions auparavant.

6
00:00:30,900 --> 00:00:35,610
Donc je vais faire le nom blogg demo souligner trop.

7
00:00:35,820 --> 00:00:36,410
D'accord.

8
00:00:36,540 --> 00:00:39,490
Et puis je vais aller de l'avant et juste se débarrasser de beaucoup de choses ici.

9
00:00:39,690 --> 00:00:43,410
Pratiquement tout, hormis notre schéma que nous avons dans les modèles.

10
00:00:43,650 --> 00:00:48,230
Et je vais commencer par parler de ce que signifie référencer les données par rapport à l'incorporation.

11
00:00:48,480 --> 00:00:57,700
Donc, ce que nous avons fait la dernière fois dans la dernière vidéo, nous avons intégré des données où nous avions un utilisateur qui ressemble à quelque chose comme ça avec un nom et il ya un e-mail là aussi.

12
00:00:57,720 --> 00:01:11,910
Et puis il ya un tableau POST et chaque poste dans ce tableau a été effectivement stockés dans le tableau tout comme celui-ci où le titre et le contenu.

13
00:01:11,910 --> 00:01:12,790
Voilà.

14
00:01:13,590 --> 00:01:20,270
Et nous avons vous savez cinq six autant que nous voulons et entendre les différents postes dans le tableau POST.

15
00:01:20,570 --> 00:01:33,380
Maintenant, ce que je vais vous montrer dans cette leçon est très similaire, sauf ce que nous faisons réellement est d'avoir un tableau affiche et à l'intérieur de tout ce que nous allons stocker ici, plutôt que les messages réels.

16
00:01:33,570 --> 00:01:42,120
Nous allons avoir un tas d'identifiants pour que nous ayons ces ID longs qui ressemblent à ça et ainsi de suite.

17
00:01:42,270 --> 00:01:46,250
Et ces idées correspondront à des postes individuels.

18
00:01:46,250 --> 00:01:57,130
Donc nous aurons un poste ici qui a un ID égal à cela et il aura le titre que vous avez appelé autre chose et ainsi de suite.

19
00:01:57,480 --> 00:02:03,980
Donc, la différence principale est que nous stockons des ID qui est d'où provient la référence de nom.

20
00:02:04,140 --> 00:02:09,520
Nous référençons l'ID d'un autre poste plutôt que d'intégrer l'intégralité du message.

21
00:02:09,900 --> 00:02:11,180
OK alors commençons.

22
00:02:11,370 --> 00:02:17,570
Et nous devons faire quelques changements à notre schéma plutôt que d'avoir des poteaux être un tableau de post-schéma.

23
00:02:17,610 --> 00:02:20,400
Ce que nous faisons en fait un tableau.

24
00:02:20,490 --> 00:02:25,030
Mais nous allons passer un objet et l'objet va ressembler à ceci.

25
00:02:25,080 --> 00:02:27,190
Je veux dire des espaces un peu.

26
00:02:27,420 --> 00:02:47,090
Et notre objet va avoir deux propriétés principales type et ref et le type va être mangouste que les types de schéma point d'objet id et ref sera post.

27
00:02:47,130 --> 00:02:49,020
Alors parlons de ce que je viens de faire ici.

28
00:02:49,050 --> 00:02:58,110
J'ai dit que dans le schéma d'utilisateur il ya un attribut post et c'est un tableau, mais plutôt que d'être un tableau de messages comme nous l'avons ici.

29
00:02:58,750 --> 00:03:00,870
Ou c'est un tableau du schéma post.

30
00:03:00,870 --> 00:03:03,570
Il s'agit en fait d'un tableau d'ID d'objet.

31
00:03:03,660 --> 00:03:06,080
Et c'est juste la façon dont nous écrivons cette syntaxe.

32
00:03:06,330 --> 00:03:11,890
C'est un identifiant d'objet mongoose appartenant à un post et nous pouvons enregistrer.

33
00:03:12,120 --> 00:03:17,300
Et juste pour s'assurer que nous n'avons rien fait de mal, nous pouvons exécuter le fichier, assurez-vous que nous n'obtenons pas d'erreur.

34
00:03:17,310 --> 00:03:18,560
Génial.

35
00:03:18,600 --> 00:03:23,520
Commençons par créer un utilisateur unique auquel nous pouvons ajouter post à plus tard.

36
00:03:23,640 --> 00:03:45,770
Donc, l'utilisateur crée et celui-ci donnera un courriel de Bob à gmail dot com et un nom sera Bob Filcher et nous allons enregistrer et puis nous allons juste laisser comme ça et nous allons simplement supposer que cela va Plutôt que d 'ajouter le rappel dans.

37
00:03:45,810 --> 00:03:48,830
Donc, cela va juste créer notre premier utilisateur.

38
00:03:48,900 --> 00:03:53,160
So let's exécuter le fichier.

39
00:03:53,160 --> 00:03:53,700
D'accord.

40
00:03:53,880 --> 00:03:58,630
Donc nous ne voyons rien, mais nous pourrions aller à Mangu et vérifier.

41
00:03:58,640 --> 00:04:12,070
Donc, montre Digby utilisation log demo souligner trop et puis nous pouvons faire trouver les utilisateurs et nous avons un utilisateur avec son nom.

42
00:04:12,150 --> 00:04:19,740
Bob Belcher email Bob à gmail dot com et messages qui est vide parce que nous n'avons pas encore ajouté de messages.

43
00:04:19,920 --> 00:04:32,330
Alors laissez-nous sortir d'ici et la prochaine chose que je veux faire est d'ajouter un message à cet utilisateur, donc je vais me débarrasser de cette déclaration de création et je vais sortir afin que vous puissiez le voir et ce que je vais Faire est de créer un nouveau post.

44
00:04:32,430 --> 00:04:38,080
Donc post doc créer et nous le faisons indépendamment de l'utilisateur.

45
00:04:38,190 --> 00:05:13,260
Donc, nous faisons ce poste et nous allons lui donner un titre de la façon de cuisiner le meilleur hamburger et puis le contenu et pas seulement le remplir avec blah blah blahs de lois pour l'instant juste comme ça et sauvera et qui devrait nous faire un Post et juste pour s'assurer que cette fois nous allons ajouter dans l'erreur de rappel et de poste et nous allons simplement annuler ce journal et nous ne sommes pas va gérer l'erreur juste pour le bien du temps et exécuter le fichier.

46
00:05:13,980 --> 00:05:18,120
Et nous avons maintenant ajouté un nouveau message à la base de données avec un ID.

47
00:05:18,160 --> 00:05:22,950
Rappelez-vous ceci I.D. Rappelez-vous tout 5 6 2 5 8 3 7 8.

48
00:05:22,960 --> 00:05:23,530
Maintenant, je plaisante.

49
00:05:23,530 --> 00:05:25,630
Mais n'oubliez pas à quoi il ressemble.

50
00:05:25,780 --> 00:05:28,600
Et puis nous avons notre contenu et ensuite notre titre.

51
00:05:28,600 --> 00:05:28,920
D'accord.

52
00:05:28,930 --> 00:05:30,790
Alors, allons-y.

53
00:05:30,810 --> 00:05:35,880
Donc, ce que nous voulons faire ensuite est de parler de la façon dont nous pouvons connecter un post et un utilisateur utilisant cet ID.

54
00:05:36,310 --> 00:05:40,090
Et pour ce faire, je vais vraiment passer par les étapes de faire un autre poste.

55
00:05:40,090 --> 00:05:42,230
Alors, appellons cela comment faire cuire le meilleur burger.

56
00:05:42,390 --> 00:05:52,190
Deuxième partie et cela va faire un nouveau post et une fois que nous enregistrons ce post Nous allons alors trouver l'utilisateur PABX.

57
00:05:52,260 --> 00:05:59,480
Donc nous allons faire un utilisateur trouver et nous allons trouver un et nous allons trouver votre nom.

58
00:05:59,760 --> 00:06:12,640
Nous allons faire e-mail cette fois où l'e-mail est Bob à Gmail dot com et puis nous allons exécuter ce code après chaque fois et puis nous avons trouvé que nous allons appeler cet utilisateur trouvé.

59
00:06:13,490 --> 00:06:14,250
D'ACCORD.

60
00:06:14,350 --> 00:06:15,380
Donc beaucoup de choses.

61
00:06:15,670 --> 00:06:18,760
Nous créons donc un message une fois que le message a été créé.

62
00:06:18,880 --> 00:06:29,860
Nous trouvons un utilisateur dans ce cas, cet utilisateur ici que nous avons déjà créé et alors nous allons gérer l'erreur si nécessaire.

63
00:06:30,490 --> 00:06:35,800
Sinon, nous allons ajouter le message dans les messages des utilisateurs.

64
00:06:35,930 --> 00:06:56,570
Donc, il a trouvé les messages utilisateur qui est ce que nous avons appelé ici et nous allons pousser dans push post et post se réfère à l'article que nous venons de créer qui était sûr la base de données avec le titre Comment faire cuire le Vestberg ou au contenu Bla bla bla bla bla

65
00:06:56,800 --> 00:06:58,450
Nous l'enregistrons si cela fonctionne.

66
00:06:58,560 --> 00:07:03,760
Nous avons une variable post qui stocke le post, puis affiner l'utilisateur.

67
00:07:03,900 --> 00:07:07,090
Dans ce cas celui avec le courrier électronique Bob at gmail dot com.

68
00:07:07,210 --> 00:07:14,340
Et puis, si nous le trouvons, nous allons ajouter le nouveau post dans ce tableau des utilisateurs post.

69
00:07:14,620 --> 00:07:15,880
Alors sauvons ça.

70
00:07:16,060 --> 00:07:20,160
Donc, après nous avons besoin de faire un autre utilisateur trouvé enregistrer.

71
00:07:20,800 --> 00:07:33,450
Et oui, nous avons besoin d'un autre rappel et celui-ci aura l'erreur et appellent ces données juste pour le rendre vraiment clair ce qui se passe.

72
00:07:33,580 --> 00:07:46,720
Et ici je vais juste de nouveau gérer l'erreur et puis s'il n'y a aucune erreur va annuler ces données de journal.

73
00:07:46,790 --> 00:07:48,750
Bien homme, nous avons beaucoup ici.

74
00:07:48,760 --> 00:07:59,120
Donc créer un post trouver l'utilisateur et ensuite prendre ce poste le pousser dans les messages des utilisateurs enregistrer l'utilisateur et puis quand cela est fait imprimer les données.

75
00:07:59,350 --> 00:08:03,010
Voyons ce que nous obtenons.

76
00:08:03,000 --> 00:08:03,910
D'accord.

77
00:08:04,140 --> 00:08:04,960
Donc, ça a marché.

78
00:08:05,110 --> 00:08:08,640
Voici notre nom d'utilisateur Courriel Bob Belcher.

79
00:08:08,640 --> 00:08:21,500
Voici l'identifiant de l'utilisateur et ensuite, au lieu des posts, tout ce que nous avons est un tableau avec un élément et c'est un ID d'objet versus lorsque nous avions le J.S. Où nous travaillions avec des données intégrées.

80
00:08:21,550 --> 00:08:26,230
Nous avons eu le poste entier de sorte que ce tableau au lieu de lui, nous avons effectivement vu les données.

81
00:08:26,380 --> 00:08:31,390
Maintenant, nous voyons l'ID.

82
00:08:31,540 --> 00:08:33,210
Alors allons ajouter un de plus.

83
00:08:33,390 --> 00:08:35,100
Nous allons donc faire la partie 3.

84
00:08:35,400 --> 00:08:38,580
Et le texte de celui-là au lieu de bla bla bla.

85
00:08:38,700 --> 00:08:41,370
Il va juste être jibberish juste pour qu'il soit plus facile de distinguer.

86
00:08:41,380 --> 00:08:45,370
Et le consul ajoutera ce poste.

87
00:08:45,370 --> 00:08:51,330
Maintenant, nous avons deux ID d'objet ici et chacun correspond à un poste individuel.

88
00:08:51,700 --> 00:08:52,660
D'ACCORD.

89
00:08:53,010 --> 00:08:55,020
Voilà comment nous pouvons les associer.

90
00:08:55,140 --> 00:09:00,290
Mais maintenant, nous devons trouver comment nous prenons cette id d'objet et trouver le bon post.

91
00:09:00,580 --> 00:09:02,260
Disons que nous voulons trouver un utilisateur.

92
00:09:02,500 --> 00:09:08,190
Et puis je veux trouver que les utilisateurs de publier ainsi et pas seulement les ID, mais je veux toutes les données.

93
00:09:08,560 --> 00:09:14,710
Donc, je vais effacer la console et je vais aussi commenter ce béhémoth ici.

94
00:09:14,720 --> 00:09:21,630
Et donc ce que nous voulons faire est de trouver l'utilisateur et puis de trouver tous les messages pour cet utilisateur.

95
00:09:21,730 --> 00:09:23,990
Et il ya effectivement une façon de le faire d'un seul coup.

96
00:09:24,120 --> 00:09:25,840
Donc nous devons trouver l'utilisateur d'abord.

97
00:09:26,010 --> 00:09:37,100
Donc, c'est l'utilisateur de trouver et nous allons trouver un nouveau et puis nous avons besoin de passer et ce que nous recherchons qui sera e-mail où il est Bob at gmail dot com.

98
00:09:38,250 --> 00:09:39,750
Et puis, c'est quelque chose de nouveau.

99
00:09:39,900 --> 00:09:41,400
Nous n'avons donc pas vu cela auparavant.

100
00:09:41,560 --> 00:09:53,550
Dot peupler, nous allons remplir des postes, puis dot exec et je vais expliquer tout cela dans un instant.

101
00:09:55,920 --> 00:09:57,420
D'ACCORD.

102
00:09:58,360 --> 00:10:02,920
Donc, ce que nous avons fait ici, nous avons écrit une requête plus longue qui a plusieurs morceaux.

103
00:10:02,910 --> 00:10:04,570
Nous trouvons donc un utilisateur.

104
00:10:05,010 --> 00:10:20,580
Et puis nous sommes en train de changer ces postes peupler qui va effectivement remplir les postes de champ chercher tous les ID d'objets de trouver les données correctes, puis collez-le dans le tableau post et puis nous exécutons exec pour commencer effectivement la requête.

105
00:10:20,590 --> 00:10:21,720
C'est un peu bizarre.

106
00:10:21,970 --> 00:10:23,220
Nous en trouvons un.

107
00:10:23,380 --> 00:10:33,070
Mais remarquez que nous n'utilisons pas de rappel ici et que nous changeons peupler et ensuite nous donnons l'exec de points à la fin qui va réellement faire tout cela se produire.

108
00:10:33,120 --> 00:10:38,000
Donc nous passons le rappel en exec parce que c'est quand nous exécutons le code.

109
00:10:38,470 --> 00:10:39,920
Et si nous avons fait ce droit.

110
00:10:39,970 --> 00:10:41,560
Alors vérifions s'il y a une erreur.

111
00:10:41,560 --> 00:10:44,690
Premier Conseil que l'erreur de journal.

112
00:10:45,070 --> 00:11:00,400
Sinon, nous espérons que notre utilisateur va avoir tous les messages pré-remplis à l'intérieur de l'attribut des messages afin d'annuler cet utilisateur de journal et nous allons essayer de le faire.

113
00:11:00,390 --> 00:11:03,780
Assurez-vous que tout est commenté sauf pour cela.

114
00:11:03,970 --> 00:11:05,230
Courons.

115
00:11:06,350 --> 00:11:06,940
Et que savez-vous.

116
00:11:06,940 --> 00:11:07,610
Ça a marché.

117
00:11:07,870 --> 00:11:12,610
Donc, nous obtenons un nom d'utilisateur est Bob Belsher email Bob à gmail point com.

118
00:11:13,030 --> 00:11:15,730
Mais maintenant post n'est pas seulement un tableau d'ID d'objet.

119
00:11:15,750 --> 00:11:18,570
Il a effectivement le poste complet là-dedans.

120
00:11:18,580 --> 00:11:19,460
Les deux.

121
00:11:19,650 --> 00:11:24,070
Donc, vous pouvez voir qu'il a une idée de ce que nous avons le contenu et le contenu du titre et le titre.

122
00:11:24,120 --> 00:11:29,360
Donc, pour résumer tout ce que nous avons fait, nous stockons des données qui ressemblent à ceci ici avec des ID d'objet.

123
00:11:29,470 --> 00:11:43,870
Vous pouvez voir les deux objets IDs et puis nous avons fait une deuxième requête pour récupérer les données et nous avons rempli le poste Saray avec toutes les données en utilisant populate que exec.

124
00:11:44,050 --> 00:11:47,690
Vous vous demandez peut-être pourquoi nous utiliserions l'un contre l'autre.

125
00:11:47,710 --> 00:11:52,220
Quand allons-nous intégrer des données versus quand utiliserons-nous des références d'identifiant d'objet.

126
00:11:52,210 --> 00:11:57,570
Et c'est une question vraiment bonne et très importante qui va aborder car nous les utilisons au lieu de notre camp.

127
00:11:57,730 --> 00:12:00,490
La réponse courte est que cela dépend.

128
00:12:00,490 --> 00:12:04,510
Et vous pouvez obtenir en utilisant soit style et à peu près toutes les situations.

129
00:12:04,500 --> 00:12:19,670
Cependant, il y a généralement une utilisation de références ou d'incorporation de données qui va se prêter mieux à tout ce que vous faites et nous allons en parler pendant que nous passons par votre camp et nous commençons à ajouter dans les commentaires et les utilisateurs et nous ajoutons Notes et photos et toutes ces caractéristiques différentes.
