Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requête MongoDB aggregate sur 3 collections

Sujet résolu
    2 juillet 2020 à 14:52:44

    Bonjour,
    Je commence un nouveau projet en Full Stack MERN (Mongo,Express,ReactJS,NodeJS) et je fais face à un problème avec mongoDB pour la rédaction d'une requête.

    Chaque utilisateurs possèdent des invités : 

    Users : {"_id" : "XXXXXUID1", "username" : "Paul", "email" : "paul@gmail.com"}  

    Invites  :

    {"_id" : "XXXXXCID1",  "username" : "Tess", "owner" : "XXXXXUID1" }

    {"_id" : "XXXXXCID2",  "username" : "Mike", "owner" : "XXXXXUID1" }

    (Paul à deux invités, Tess et Mike) 

    Et chaque utilisateur est connecté à un ou plusieurs salons : 

    Salons : {"_id" : "XXXXXSID1", "name" : "Salon1", "owner" : "XXXXXUID1"}  

    Membres (des salons) :  {"_id" : "XXXXXSMD1", "Salon" : "XXXXXSID1", "user" : "XXXXXUID1"}  

    (Paul à rejoins le salon "Salon1")

    Je souhaiterais obtenir un résultant de la forme suivante : 

    {"_id":"XXXXXSID1",
    "name":"Salon1",
    "Users": [
    {"_id": "XXXXXXUID1",
    "username":"Paul",
    "Invites":[
    {"_id" : "XXXXXCID1",  "username" : "Tess"},
    {"_id" : "XXXXXCID2",  "username" : "Mike" }}]
    ]}}

    (Pour chaque salon, la listes des membres du salon ainsi que les invités de chaque membres)

    J'ai donc essayer avec $lookup et j'arrive à récupérer les utilisateurs avec la listes de leurs invités mais impossible pour moi de rajouter une qui est les salons..

    Si vous avez une petite piste :) Merci d'avance ! 

    -
    Edité par Quentin_F 2 juillet 2020 à 14:57:28

    • Partager sur Facebook
    • Partager sur Twitter
      2 juillet 2020 à 16:13:56

      Bonjour,

      Pourquoi invites est une collection différente de users ? Les invités sont aussi des users ?

      Dans tous les cas, il semblerait ici que NoSQL ne soit pas le mieux adapté au contexte ... forte intégrité relationnelle ...

      -
      Edité par Benzouye 2 juillet 2020 à 16:14:44

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      Requête MongoDB aggregate sur 3 collections

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown