Доступ к исходным данным Mongodb модели Django - PullRequest
1 голос
/ 12 марта 2012

Я использую django-nonrel в сочетании с mongodb-engine.Это прекрасно работает, если все поля, хранящиеся в объекте mongodb, также определены в модели.

Но у меня есть некоторые дополнительные данные об объекте mongodb, которые не заданы в модели.И это моя проблема.Сейчас я делаю дополнительный запрос, чтобы получить исходный объект mongodb, например так:

collection = connection.get_collection(self._meta.db_table)
self._mongo_data = collection.find_one({'_id': ObjectId(self.pk)}) 

Он работает нормально, но не так эффективно, потому что это второй раз, когда этот запрос выполняется (сначала для созданиямодели и позже, чтобы получить исходные данные mongodb).

Есть ли способ доступа к исходным данным, полученным для создания модели?

Установка этих дополнительных полей вмодель не подходит, потому что дополнительные данные создаются на лету.

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Если есть способ сделать это с помощью базы данных SQL, и он не работает с MongoDB Engine, пожалуйста, откройте отчет об ошибке.В противном случае, боюсь, вам сначала нужно добавить эту функцию в Django: -)

1 голос
/ 12 марта 2012

Я не думаю, что есть хороший способ сделать это.

Выбранные поля ограничены во время запроса полями в модели:

https://github.com/django-nonrel/mongodb-engine/blob/master/django_mongodb_engine/compiler.py#L123

https://github.com/django/django/blob/master/django/db/models/sql/query.py#L1638

Можете ли вы использовать поле dict / внедренный объект и иметь какое-то пространство имен уровня документа, чтобы взять их из?

...