Как упомянуто в комментарии, попробуйте принудительно ввести имя коллекции «TASK» следующим образом:
class TASK(DynamicDocument):
meta = {'collection': 'TASK'}
В противном случае базовая коллекция будет «t_a_s_k», а не «TASK», как вы ожидаете. Фактически это происходит из-за того, что обычно модели имеют CamelCased (например, JediWarrior), а mongoengine snake_cases имя модели для вычета имени коллекции (например, jedi_warrior). Ниже приведена демонстрация того, как коллекция названа за сценой в вашем примере:
from mongoengine import *
connect("try", host="mongodb://x.x.x.x:27017/")
class TASK(DynamicDocument):
pass
collection = TASK._get_collection()
print(collection.name) # 't_a_s_k'