MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

La deferenza di Mongoengine si verifica dopo aver utilizzato select_related()

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) .