sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose populace vložená

Od verze Mongoose 3.6 byla přidána možnost rekurzivně vyplňovat související dokumenty v dotazu. Zde je příklad, jak to můžete udělat:

 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);
                   }
             );     
          });           

V tomto případě vyplňuji pole id v 'refUserListItems' jejich odkazovanými dokumenty. Výsledek dotazu je poté předán do jiného vyplňovaného dotazu, který odkazuje na pole původního vyplněného dokumentu, který chci také vyplnit – 'refSuggestion'.

Všimněte si druhé (vnitřní) populace - zde se děje kouzlo. Můžete pokračovat ve vnořování těchto souborů a připojovat se k dalším a dalším dokumentům, dokud nevytvoříte svůj graf tak, jak ho potřebujete.

Chvíli trvá, než pochopíte, jak to funguje, ale pokud se tím propracujete, dává to smysl.



  1. pochopit systém mezipaměti MongoDB

  2. Kontrola, zda pole obsahuje řetězec

  3. Jak mohu spustit příkaz mongodump programově z node.js?

  4. Jak získat více řádků do seznamu odděleného čárkami v SQL