register_connection python mongodb backbone.js flask pymongo

python - register_connection - pymongo connection



Peso ligero Mongodb ODM/ORM para Python (3)

Estoy buscando MondoDB Python ODM / ORM que tome lo mejor de dos mundos: ODM / ORM y lectura ultrarrápida de diccionario directo.

En otras palabras, el paquete debe cumplir con los siguientes requisitos:

  1. Permite definir y aplicar el esquema.
  2. Permite validar campos.
  3. Permite leer objetos directamente desde mongodb (sin overhead de ODM / ORM).
    • Se puede acceder a colecciones / objetos devueltos directamente por pymongo utilizando la capa ODM / ORM (sin consultas adicionales).
    • Me imagino que algún tipo de campo diferido agregado por el controlador pymongo a los objetos que proporciona acceso al jugo ORM (Pymongo permite tales extensiones).
    • Imagine el caso de uso:
      • Para una lectura rápida vamos directamente al controlador,
      • Para la entrada de datos utilizamos funcionalidad completa ODM / ORM
  4. Soporte de Geofields
  5. GridFS admite archivos e imágenes normales
  6. Soporte DBRef
  7. No impone ningún campo oculto específico del marco
  8. Funcionará con Flask :)
  9. Tiene marco de formas.
    • Las formas cubren sublistas / subdictos
    • Las formas basadas en Backbone serían simplemente increíbles
  10. Crea modelos de backbone, colecciones, validadores basados ​​en la definición de python

Sé que estoy pidiendo mucho, pero no sería genial tener algo así :)

De hecho, la pregunta podría reformularse en: "¿Cuál de los ODM / ORM de Python Mongodb (MongoKit, MongoEngine) podría extenderse fácilmente de esta manera?".


En primer lugar, me encantaría tenerlo también.

Basado en mi investigación

Ming es un controlador mongo ODM muy prometedor: http://merciless.sourceforge.net/

Mongo Engine es demasiado grande para adaptarlo a sus requisitos / uso. Lo mismo para MongoKit.

Hay alguna esperanza en micromongo: http://packages.python.org/micromongo

Podría ser un buen punto de partida.

Por cierto: Hmmm ... No sé lo que estás escribiendo, pero con formularios y validadores cubiertos puedes construir fácilmente una interfaz de administración y terminar teniendo la próxima generación de Django. ¡Buena suerte!


umongo nació mucho después de que se hizo esa pregunta. Aunque es relativamente joven, está ganando madurez. Al igual que micromongo, su objetivo es ser simple (la "u" significa μ / micro), por lo que no proporciona las numerosas características solicitadas en la pregunta, pero está destinado a ser una base sensata sobre la cual construir.

Utiliza Marshmallow internamente para el esquema / validación del modelo, por lo que puedes usarlo felizmente con otras bibliotecas usando Marshmallow. Lo uso en una aplicación Flask que proporciona una API REST usando Marshmallow para analizar entradas / salidas. Esto limita la cantidad de duplicación entre DB y esquema de API. La aplicación utiliza otras bibliotecas del entorno Marshmallow (webargs / apispec).

Como tiene acceso directo a las colecciones, puede usar consultas simples de pymongo.

Además, es compatible no solo con pymongo sino también con controladores asíncronos.


Bueno, si tomas la teoría de un ORM, lo que necesitas no es un ORM, ya que MongoDB no es una base de datos relacional, por lo que no hay que hacer un mapeo a las entidades relacionales.

Creo que debes comprobar la respuesta de esta publicación para comprobar si las recomendaciones hechas son las que necesitas, yo personalmente uso MongoDB + Python directamente, debido a la "naturaleza" de Mongo y Python.

Al mirar alrededor, encontré esta biblioteca que podría ayudarlo a mongoEngine . Es como Django ORM. Deberías verificarlo.