Innanzitutto un avvertimento, questo non è solo uno schema relazionale ma ricorsivamente relazionale. Potresti seguire le relazioni e finire per caricare tutto il UserAccount
oggetti.
Ricorda che non ci sono nessun join in MongoDB - quindi stai chiedendo al codice client (mongoengine) di eseguire join di applicazioni per te - il che significa più query e quindi assegnare i risultati ai documenti corretti - è costoso. Quindi chiediti "è questo lo strumento giusto per il lavoro? "
Tuttavia, le tue osservazioni sono corrette - per impostazione predefinita select_related()
scende solo di una singola relazione, quindi per un oggetto utente dereferenzia solo il primo gruppo di amici e non i loro amici. Puoi modificare la profondità passandola a select_related(max_depth=2)
.