Първо едно предупреждение, това не е само релационна схема, но и рекурсивно релационна. Можете да следвате връзките и в крайна сметка да заредите всички UserAccount
обекти.
Не забравяйте, че няма присъединявания в MongoDB - така че вие питате клиентския код (mongoengine) да изпълнява в обединения на приложения вместо вас - което означава множество заявки и след това присвояване на резултатите на правилните документи - това е скъпо. Затова, моля, запитайте се „това ли е правилният инструмент за работата? "
Вашите наблюдения обаче са верни - по подразбиране select_related()
слиза само по една релация, така че за потребителски обект ще дереферира само първия набор от приятели, а не техните приятели. Можете да промените дълбочината, като я предадете на select_related(max_depth=2)
.