我將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