O mongoengine é muito lento em documentos grandes comparado ao uso nativo de pymongo

Eu tenho o seguinte modelo mongoengine:

class MyModel(Document):
    date        = DateTimeField(required = True)
    data_dict_1 = DictField(required = False)
    data_dict_2 = DictField(required = True)

Em alguns casos, o documento no banco de dados pode ser muito grande (em torno de 5 a 10 MB) e os campos data_dict contêm documentos aninhados complexos (ditado de listas de dictos, etc ...).

Encontrei dois problemas (possivelmente relacionados):

Quando executo a consulta nativa pymongo find_one (), ela retorna em um segundo. Quando executo MyModel.objects.first (), leva de 5 a 10 segundos.

Quando consulta um único documento grande no banco de dados e, em seguida, acesso seu campo, leva de 10 a 20 segundos apenas para fazer o seguinte:

m = MyModel.objects.first()
val = m.data_dict_1.get(some_key)

Os dados no objeto não contêm nenhuma referência a nenhum outro objeto, portanto, não se trata de desreferenciamento de objetos.
Suspeito que esteja relacionado a alguma ineficiência da representação de dados internos do mongoengine, que afeta a construção do objeto de documento e o acesso aos campos. Existe algo que eu possa fazer para melhorar isso?

questionAnswers(1)

yourAnswerToTheQuestion