我将django-nonrel与mongodb-engine结合使用。如果存储在mongodb对象中的所有字段也都在模型中定义,那么它工作得很好。访问Django模型的原始Mongodb数据
但是我在mongodb对象上有一些额外的数据,它们没有在模型上设置。这是我的问题。现在,我做了一个额外的查询来获得原始MongoDB的对象,像这样:
collection = connection.get_collection(self._meta.db_table)
self._mongo_data = collection.find_one({'_id': ObjectId(self.pk)})
它工作正常,但是,这不是有效的,因为这是创造的这个查询运行第二次(第一次模型,后来得到原始的mongodb数据)。
有没有办法访问原始数据,检索创建模型?
在模型上设置这些额外的字段不是一个选项,因为额外的数据是动态创建的。
感谢您的帮助!我发现我可以将额外的mongo数据添加到结果集中,不幸的是,一旦模型创建,这些额外的数据就会丢失: https://github.com/django/django/blob/master/django/db/models/ query.py#L298 – Willian 2012-03-13 08:51:52
我认为你最好的选择是采取额外的数据,并使用嵌入式文档或字典领域嵌入它。 – gone 2012-03-14 19:42:54