sql >> Base de Datos >  >> NoSQL >> MongoDB

La deferencia de Mongoengine ocurre después de usar select_related()

Primero, una palabra de advertencia, este no es solo un esquema relacional sino recursivamente relacional. Podría seguir las relaciones y terminar cargando todo la UserAccount objetos.

Recuerda que no hay uniones en MongoDB, por lo que le está pidiendo al código del cliente (mongoengine) que se una a la aplicación por usted, lo que significa múltiples consultas y luego asignar los resultados a los documentos correctos, eso es costoso. Entonces, pregúntese "¿es esta la herramienta adecuada para el trabajo? "

Sin embargo, sus observaciones son correctas; de forma predeterminada, seleccionar_relacionado() solo pasa por una sola relación, por lo que para un objeto de usuario solo eliminará la referencia al primer conjunto de amigos y no a sus amigos. Puede cambiar la profundidad pasándola a select_related(max_depth=2) .