sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose befolke indlejret

Fra Mongoose 3.6 er muligheden for rekursivt at udfylde relaterede dokumenter i en forespørgsel blevet tilføjet. Her er et eksempel på, hvordan du kan gøre det:

 UserList.findById(listId)
         .populate('refUserListItems')
         .exec(function(err, doc){
             UserListItem.populate(doc.refUserListItems, {path:'refSuggestion'},
                   function(err, data){
                        console.log("User List data: %j", doc);
                        cb(null, doc);
                   }
             );     
          });           

I dette tilfælde udfylder jeg en række id'er i 'refUserListItems' med deres refererede dokumenter. Resultatet af forespørgslen sendes derefter til en anden udfyldningsforespørgsel, der refererer til feltet i det originale udfyldte dokument, som jeg også vil udfylde - 'refSuggestion'.

Bemærk den anden (interne) befolkning - det er her magien sker. Du kan fortsætte med at indlejre disse udfyldninger og tage fat på flere og flere dokumenter, indtil du har bygget din graf, som du har brug for den.

Det tager lidt tid at fordøje, hvordan det fungerer, men hvis du arbejder dig igennem det, giver det mening.



  1. Indhentning af $grupperesultat med gruppeantal

  2. redis dump.rdb / gemmer små filer

  3. Hvordan gemmer man sorteret sæt objekter i redis?

  4. Hvad er den bedste måde at gemme datoer i MongoDB?