MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

A deferência do Mongoengine acontece depois de usar select_related()


Primeiro, uma palavra de advertência, este não é apenas um esquema relacional, mas um esquema recursivamente relacional. Você pode seguir os relacionamentos e acabar carregando todos a UserAccount objetos.

Lembre-se de que não há junções no MongoDB - então você está pedindo ao código do cliente (mongoengine) para executar em junções de aplicativos para você - o que significa várias consultas e, em seguida, atribuir os resultados aos documentos corretos - isso é caro. Então, pergunte a si mesmo "essa é a ferramenta certa para o trabalho? "

No entanto, suas observações estão corretas - por padrão select_related() apenas desce uma única relação, portanto, para um objeto de usuário, ele apenas desreferenciará o primeiro conjunto de amigos e não seus amigos. Você pode alterar a profundidade passando para select_related(max_depth=2) .