Najpierw słowo ostrzeżenia, nie jest to tylko schemat relacyjny, ale rekursywnie relacyjny. Możesz śledzić relacje i ładować wszystkie UserAccount
obiekty.
Pamiętaj, że nie ma połączeń w MongoDB - więc prosisz kod klienta (mongoengine) o wykonanie za Ciebie złączeń w aplikacji - co oznacza wielokrotne zapytania, a następnie przypisanie wyników do właściwych dokumentów - to jest drogie. Więc zadaj sobie pytanie „czy to jest odpowiednie narzędzie do pracy? "
Jednak Twoje obserwacje są poprawne — domyślnie select_related()
schodzi tylko w dół o pojedynczą relację, więc dla obiektu użytkownika wyłuska tylko pierwszy zestaw znajomych, a nie ich znajomych. Możesz zmienić głębokość, przekazując ją do select_related(max_depth=2)
.