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.
Donc, avant de commencer, je vais créer un nouveau fichier ici dans le même répertoire et j'appellerai celui-ci.
Références enseignées J.
Et je vais simplement tout copier dans ce fichier de notre leçon précédente et je vais changer cela.
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.
Donc je vais faire le nom blogg demo souligner trop.
D'accord.
Et puis je vais aller de l'avant et juste se débarrasser de beaucoup de choses ici.
Pratiquement tout, hormis notre schéma que nous avons dans les modèles.
Et je vais commencer par parler de ce que signifie référencer les données par rapport à l'incorporation.
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.
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.
Voilà.
Et nous avons vous savez cinq six autant que nous voulons et entendre les différents postes dans le tableau POST.
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.
Nous allons avoir un tas d'identifiants pour que nous ayons ces ID longs qui ressemblent à ça et ainsi de suite.
Et ces idées correspondront à des postes individuels.
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.
Donc, la différence principale est que nous stockons des ID qui est d'où provient la référence de nom.
Nous référençons l'ID d'un autre poste plutôt que d'intégrer l'intégralité du message.
OK alors commençons.
Et nous devons faire quelques changements à notre schéma plutôt que d'avoir des poteaux être un tableau de post-schéma.
Ce que nous faisons en fait un tableau.
Mais nous allons passer un objet et l'objet va ressembler à ceci.
Je veux dire des espaces un peu.
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.
Alors parlons de ce que je viens de faire ici.
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.
Ou c'est un tableau du schéma post.
Il s'agit en fait d'un tableau d'ID d'objet.
Et c'est juste la façon dont nous écrivons cette syntaxe.
C'est un identifiant d'objet mongoose appartenant à un post et nous pouvons enregistrer.
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.
Génial.
Commençons par créer un utilisateur unique auquel nous pouvons ajouter post à plus tard.
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.
Donc, cela va juste créer notre premier utilisateur.
So let's exécuter le fichier.
D'accord.
Donc nous ne voyons rien, mais nous pourrions aller à Mangu et vérifier.
Donc, montre Digby utilisation log demo souligner trop et puis nous pouvons faire trouver les utilisateurs et nous avons un utilisateur avec son nom.
Bob Belcher email Bob à gmail dot com et messages qui est vide parce que nous n'avons pas encore ajouté de messages.
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.
Donc post doc créer et nous le faisons indépendamment de l'utilisateur.
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.
Et nous avons maintenant ajouté un nouveau message à la base de données avec un ID.
Rappelez-vous ceci I.D. Rappelez-vous tout 5 6 2 5 8 3 7 8.
Maintenant, je plaisante.
Mais n'oubliez pas à quoi il ressemble.
Et puis nous avons notre contenu et ensuite notre titre.
D'accord.
Alors, allons-y.
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.
Et pour ce faire, je vais vraiment passer par les étapes de faire un autre poste.
Alors, appellons cela comment faire cuire le meilleur burger.
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.
Donc nous allons faire un utilisateur trouver et nous allons trouver un et nous allons trouver votre nom.
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é.
D'ACCORD.
Donc beaucoup de choses.
Nous créons donc un message une fois que le message a été créé.
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.
Sinon, nous allons ajouter le message dans les messages des utilisateurs.
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
Nous l'enregistrons si cela fonctionne.
Nous avons une variable post qui stocke le post, puis affiner l'utilisateur.
Dans ce cas celui avec le courrier électronique Bob at gmail dot com.
Et puis, si nous le trouvons, nous allons ajouter le nouveau post dans ce tableau des utilisateurs post.
Alors sauvons ça.
Donc, après nous avons besoin de faire un autre utilisateur trouvé enregistrer.
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.
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.
Bien homme, nous avons beaucoup ici.
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.
Voyons ce que nous obtenons.
D'accord.
Donc, ça a marché.
Voici notre nom d'utilisateur Courriel Bob Belcher.
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.
Nous avons eu le poste entier de sorte que ce tableau au lieu de lui, nous avons effectivement vu les données.
Maintenant, nous voyons l'ID.
Alors allons ajouter un de plus.
Nous allons donc faire la partie 3.
Et le texte de celui-là au lieu de bla bla bla.
Il va juste être jibberish juste pour qu'il soit plus facile de distinguer.
Et le consul ajoutera ce poste.
Maintenant, nous avons deux ID d'objet ici et chacun correspond à un poste individuel.
D'ACCORD.
Voilà comment nous pouvons les associer.
Mais maintenant, nous devons trouver comment nous prenons cette id d'objet et trouver le bon post.
Disons que nous voulons trouver un utilisateur.
Et puis je veux trouver que les utilisateurs de publier ainsi et pas seulement les ID, mais je veux toutes les données.
Donc, je vais effacer la console et je vais aussi commenter ce béhémoth ici.
Et donc ce que nous voulons faire est de trouver l'utilisateur et puis de trouver tous les messages pour cet utilisateur.
Et il ya effectivement une façon de le faire d'un seul coup.
Donc nous devons trouver l'utilisateur d'abord.
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.
Et puis, c'est quelque chose de nouveau.
Nous n'avons donc pas vu cela auparavant.
Dot peupler, nous allons remplir des postes, puis dot exec et je vais expliquer tout cela dans un instant.
D'ACCORD.
Donc, ce que nous avons fait ici, nous avons écrit une requête plus longue qui a plusieurs morceaux.
Nous trouvons donc un utilisateur.
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.
C'est un peu bizarre.
Nous en trouvons un.
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.
Donc nous passons le rappel en exec parce que c'est quand nous exécutons le code.
Et si nous avons fait ce droit.
Alors vérifions s'il y a une erreur.
Premier Conseil que l'erreur de journal.
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.
Assurez-vous que tout est commenté sauf pour cela.
Courons.
Et que savez-vous.
Ça a marché.
Donc, nous obtenons un nom d'utilisateur est Bob Belsher email Bob à gmail point com.
Mais maintenant post n'est pas seulement un tableau d'ID d'objet.
Il a effectivement le poste complet là-dedans.
Les deux.
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.
Donc, pour résumer tout ce que nous avons fait, nous stockons des données qui ressemblent à ceci ici avec des ID d'objet.
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.
Vous vous demandez peut-être pourquoi nous utiliserions l'un contre l'autre.
Quand allons-nous intégrer des données versus quand utiliserons-nous des références d'identifiant d'objet.
Et c'est une question vraiment bonne et très importante qui va aborder car nous les utilisons au lieu de notre camp.
La réponse courte est que cela dépend.
Et vous pouvez obtenir en utilisant soit style et à peu près toutes les situations.
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.