Исключить поля значений по умолчанию, возвращаемые только mongoengine()

Предположим, у меня есть класс User, который имеет 10 полей, и всем им назначены значения по умолчанию.

Если бы я сделал что-то вроде этого:

docs = User.objects.only('field1', 'field2', 'field3')
print docs[0]._fields.keys()

Это по-прежнему будет печатать все 10 полей как ключи (7 из них будут просто иметь значения по умолчанию или None).

Есть ли способ заставить QuerySet возвращаться с помощью only(), чтобы фактически исключить поля, которые не были загружены? Документы не указывают никаких способов сделать это.

Документация MongoEngine: http://docs.mongoengine.org/guide/querying.html#retrieving-a-subset-of-fields


person jwan    schedule 29.11.2013    source источник


Ответы (1)


В настоящее время это невозможно (начиная с MongoEngine 0.8.6), но в выпуске 0.9 оно было сокращено.

person Ross    schedule 09.12.2013
comment
Спасибо за внимание. Итак, каков основной вариант использования only()? Это для более быстрого чтения из монго (и меньшего объема памяти)? Существуют ли какие-либо встроенные свойства полей, которые я могу использовать, чтобы определить, извлекается ли поле со значением по умолчанию (в отличие от фактического значения) - person jwan; 11.12.2013