Szukaj w wielu kolekcjach w MongoDB
Znam teorię MongoDB i fakt, że nie obsługuje złączeń, i że powinienem używać osadzonych dokumentów lub denormalizować jak najwięcej, ale tutaj:
Mam wiele dokumentów, takich jak:
Użytkownicy, którzy osadzają Suburbs, ale mają także: imię, nazwiskoPrzedmieścia, w których osadzone są państwaDziecko, które osadza szkołę, należy do użytkownika, ale ma również: imię, nazwiskoPrzykład:
Users:
{ _id: 1, first_name: 'Bill', last_name: 'Gates', suburb: 1 }
{ _id: 2, first_name: 'Steve', last_name: 'Jobs', suburb: 3 }
Suburb:
{ _id: 1, name: 'Suburb A', state: 1 }
{ _id: 2, name: 'Suburb B', state: 1 }
{ _id: 3, name: 'Suburb C', state: 3 }
State:
{ _id: 1, name: 'LA' }
{ _id: 3, name: 'NY' }
Child:
{ _id: 1, _user_id: 1, first_name: 'Little Billy', last_name: 'Gates' }
{ _id: 2, _user_id: 2, first_name: 'Little Stevie', last_name: 'Jobs' }
Wyszukiwanie, które muszę wdrożyć, dotyczy:
imię, nazwisko użytkowników i dzieckoStan od użytkownikówWiem, że muszę wykonać wiele zapytań, aby to zrobić, ale jak można to osiągnąć? Z mapReduce lub agregować?
Czy możesz wskazać rozwiązanie?
Próbowałem użyć mapReduce, ale nie zmusiło mnie to do posiadania dokumentów od Użytkowników, które zawierałyby state_id, więc dlatego przyniosłem je tutaj.