MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Osadzona populacja mangusty

Od Mongoose 3.6 dodano możliwość rekursywnego wypełniania powiązanych dokumentów w zapytaniu. Oto przykład, jak możesz to zrobić:

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

W tym przypadku wypełniam tablicę identyfikatorów w 'refUserListItems' dokumentami, do których się odnoszą. Wynik zapytania jest następnie przekazywany do innego zapytania wypełniającego, które odwołuje się do pola oryginalnego wypełnionego dokumentu, który chcę również wypełnić — „refSuggestion”.

Zwróć uwagę na drugą (wewnętrzną) populację - tutaj dzieje się magia. Możesz nadal zagnieżdżać te populacje i dołączać coraz więcej dokumentów, dopóki nie zbudujesz wykresu tak, jak tego potrzebujesz.

Przeanalizowanie tego, jak to działa, zajmuje trochę czasu, ale jeśli przez to przejdziesz, ma to sens.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zmienić nazwę bazy danych MongoDB?

  2. Mongodb nie może się uruchomić

  3. Jaki jest właściwy wzorzec dla schematów zagnieżdżonych w Mongoose/MongoDB?

  4. Jak uniknąć ostrzeżenia transparent_hugepage/defrag z mongodb?

  5. Pogrupuj wynik w 15-minutowym przedziale czasowym w MongoDb