MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

La déférence de Mongoengine se produit après l'utilisation de select_related()

Tout d'abord un mot d'avertissement, ce n'est pas seulement un schéma relationnel mais un schéma récursivement relationnel. Vous pourriez suivre les relations et finir par charger tous le UserAccount objets.

N'oubliez pas qu'il n'y a aucune jointure dans MongoDB - vous demandez donc au code client (mongoengine) d'effectuer des jointures d'application pour vous - ce qui signifie plusieurs requêtes, puis l'attribution des résultats aux bons documents - c'est cher. Alors, s'il vous plaît, demandez-vous "est-ce le bon outil pour le travail ? "

Cependant, vos observations sont correctes - par défaut select_related() ne descend qu'une seule relation, donc pour un objet utilisateur, il ne déréférencera que le premier ensemble d'amis et non leurs amis. Vous pouvez modifier la profondeur en la passant à select_related(max_depth=2) .