script mongo documentacion docs create consulta python django mongodb

documentacion - ¿Qué API de Python se debe usar con Mongo DB y Django?



python mongo consulta (6)

He estado yendo y viniendo sobre qué API de Python usar cuando se interactúa con Mongo. Hice una encuesta rápida del paisaje e identifiqué a tres candidatos principales.

Si estuvieras diseñando un nuevo sitio web con contenido pesado usando el framework django , ¿qué API elegirías y por qué?

MongoEngine parece que fue construido específicamente con Django en mente. PyMongo parece ser una capa delgada alrededor de Mongo. Tiene mucho poder, aunque pierde muchas de las abstracciones obtenidas mediante el uso de django como marco. Ming representa un terreno intermedio interesante entre PyMongo y MongoEngine, aunque no he tenido la oportunidad de tomarlo como prueba.



Como dice Mike, no se puede evitar PyMongo, todas las demás interfaces se construyen encima. Estas otras interfaces son discutiblemente innecesarias. Los ORM como el que se usa en Django son útiles cuando se trata de SQL porque mitigan la complejidad de crear consultas SQL y esquemas, y analizar conjuntos de resultados en objetos.

PyMongo, sin embargo, ya tiene eso cubierto: las consultas pasan por una API conveniente y simple, y los resultados provenientes de MongoDB ya son objetos (bueno, dicts en Python - la misma diferencia) por definición. Si sientes que realmente necesitas decorar tus documentos Mongo con objetos Python, es fácil agregar un manipulador SON a PyMongo. Lo bueno de este enfoque es que puedes escribir código directamente en PyMongo, y luego insertar funcionalidades adicionales sin tener que insertar una nueva API entre tu código y PyMongo.

¿Lo que queda? La creación y migración de esquemas son algo útiles, pero se realizan casi de manera ad-hoc. Lo más probable es que si está considerando usar MongoDB, quiera romper con el modelo tradicional de estilo SQL. Además, si hubiera un MongoDB ORM totalmente compatible con Django, podría sacarle provecho. Algo menos que eso y probablemente creará trabajo para usted.

No te arrepentirás de usar PyMongo directamente.

Una última opción que vale la pena ver si está interesado en la máxima eficiencia es la versión asincrónica de PyMongo, aquí: http://github.com/fiorix/mongo-async-python-driver



La documentación oficial de Mongodb habla sobre djongo . Funciona al traducir consultas SQL a consultas mongodb.

No necesita django-nonrel para ejecutarlo.

Todos los módulos contrib nativos de Django (por ejemplo, admin, usuario, sesión) funcionan sin ninguna modificación.

MongoEngine requiere reescribir los módulos contrib y la última vez que lo verifiqué, el módulo administrador nativo no se ejecutó en MongoEngine.

Sus modelos existentes se ejecutan sin ninguna traducción ORM también.



Tanto MongoEngine como Ming dependen de PyMongo; simplemente ponen una funcionalidad agradable encima. Recomiendo al menos comenzar con PyMongo directamente, de esa manera, si decides utilizar una de las otras herramientas y te encuentras con problemas, será fácil entender lo que está sucediendo "debajo del capó". Dicho esto, soy muy parcial;).