Articles of mongoengine

Obtención de un diccionario dentro de una lista por clave en mongoDB (mongoengine)

Estoy usando mongoDB (mongoHQ) en mi aplicación Flask (mongoengine). Tengo un Document que se parece a esto: {items: [{id: 1}, {id: 2}, {id: 3}]} ¿Hay alguna forma de alcanzar, por ejemplo, el dict con id: 1 en una sola consulta ? Actualmente estoy repasando la lista de items con una statement next() y esperaba una […]

python wtf AttributeError: el objeto ‘ObjectIdField’ no tiene ningún atributo ‘help_text’

Basado en este tutorial, estoy tratando de crear un formulario para obtener algunas medidas. Parece que la parte para mostrar los datos está funcionando, pero cuando se usa el comando model_form para generar el formulario de entrada, se rompe con este error: Archivo “/myproject/lib/python3.4/site-packages/flask_mongoengine/wtf/orm.py”, línea 49, en conversión ‘description’: field.help_text o ”, AttributeError: el objeto […]

Filtrado de una lista incrustada en MongoEngine

Si tengo estos modelos: class Sub(EmbeddedDocument): name = StringField() class Main(Document): subs = ListField(EmbeddedDocumentField(Sub)) Quiero tener una consulta que devuelva el Mains, con los subs filtrados por nombre existente Main.objects.filter(subs__name__exists=True) Esto devuelve la Red principal correcta, pero los Subs son siempre la lista completa, no un subconjunto. ¿Cómo puedo obtener solo el subconjunto? ¿Necesito confiar […]

MongoEngine y lidiando con “UserWarning: MongoClient abrió antes de la bifurcación. Cree MongoClient con connect = False, o cree un cliente después de bifurcar ”

Estoy usando Celery y MongoEngine como parte de mi aplicación Django con. Recibo esta advertencia, cuando un apio @shared_task accede a la base de datos mongodb a través de las clases del modelo mongoengine: UserWarning: MongoClient opened before fork. Create MongoClient with connect=False,or create client after forking. See PyMongo’s documentation for details: http://api.mongodb.org/python/current/faq.html#using-pymongo-with-multiprocessing Claramente, tiene […]

Consulta de documentos incrustados de Mongo

Tengo 2 DynamicDocuments: class Tasks(db.DynamicDocument): task_id = db.UUIDField(primary_key=True,default=uuid.uuid4) name = db.StringField() flag = db.IntField() class UserTasks(db.DynamicDocument): user_id = db.ReferenceField(‘User’) tasks = db.ListField(db.ReferenceField(‘Tasks’),default=list) Quiero filtrar el documento UserTasks comprobando si el valor del flag (del documento Tasks) del task_id dado es 0 o 1 , dado el task_id y user_id. Así que pregunto de la siguiente […]

Mongoengine es muy lento en documentos grandes en comparación con el uso nativo de pymongo

Tengo el siguiente modelo de mongoengine: class MyModel(Document): date = DateTimeField(required = True) data_dict_1 = DictField(required = False) data_dict_2 = DictField(required = True) En algunos casos, el documento en la base de datos puede ser muy grande (alrededor de 5-10 MB), y los campos data_dict contienen documentos complejos nesteds (dict de listas de dictados, etc.). […]

¿Mongoengine … consulta algo que no está en un ListField?

por ejemplo.. class Page(Document) tags = ListField(StringField()) En este caso, podemos encontrar un valor en la lista de tags como este. Page.objects(tags=’coding’) si las tags son como [‘encoding’, ‘x’, ‘y’], entonces el documento coincidirá … pero mi pregunta es cómo puedo averiguar el valor no en el campo de lista. mi código incorrecto sería … […]

Convertir el objeto de retorno mongodb al diccionario

Estoy usando el marco de la botella junto con mongoengine. Tengo un modelo de pedidos: class OrderDetail(Option): orderDetailsQty = FloatField() def to_dict(self): return mongo_to_dict_helper(self) class Order(Document): userName = StringField(required=True) orderDate = DateTimeField() orderStatus = ListField(EmbeddedDocumentField(Status)) orderDetails = ListField(EmbeddedDocumentField(OrderDetail)) orderComments = ListField(EmbeddedDocumentField(Comment)) isActive = BooleanField() def to_dict(self): orderObj = mongo_to_dict_helper(self) orderDetailList = [] for orderDetail in […]

Cómo buscar documento por oid en mongoengine

Necesito obtener documentos de db por oid, como: Docs.objects(_id=’4f4381f4e779897a2c000009′) Pero cómo hacerlo, si _id requiere el objeto ObjectId e incluso bash establecer ObjectId desde pymongo no funciona. Docs.objects(_id=pymongo.objectid.ObjectId(‘4f4381f4e779897a2c000009’)) volver lista vacía

valor predeterminado mongoengine de otro campo

Estoy probando MongoEngine para un proyecto y es bastante bueno. Me preguntaba si es posible establecer un valor predeterminado para un campo de otro campo? Algo como esto import mongoengine as me class Company(me.Document): short_name = me.StringField(required=True) full_name = me.StringField(required=True, default=short_name) esto falla con un error ValidationError (Company:None) (StringField only accepts string values: [‘full_name’]) :EDITAR: […]