Allereerst een woord van waarschuwing:dit is niet alleen een relationeel schema, maar ook een recursief relationeel schema. Je zou de relaties kunnen volgen en uiteindelijk alles . laden het UserAccount
objecten.
Onthoud dat er geen deelnames zijn in MongoDB - dus u vraagt de clientcode (mongoengine) om voor u in applicatie-joins uit te voeren - wat meerdere query's betekent en vervolgens de resultaten toewijzen aan de juiste documenten - dat is duur. Dus stel jezelf de vraag "is dit de juiste tool voor de klus? "
Uw waarnemingen zijn echter correct - standaard select_related()
gaat slechts een enkele relatie omlaag, dus voor een gebruikersobject zal het alleen de eerste set vrienden verwijden en niet hun vrienden. U kunt de diepte wijzigen door deze door te geven aan select_related(max_depth=2)
.