Post.objects(id=str(_id)).update(**{"comments__{}__comment".format(position): update_comment_str})
В вашем коде.
Вы загрузили весь документ в экземпляр Python, который будет находиться в оперативной памяти.
Затемобновить 3000-е комментарии, которые сделают магию в mongoengine (пометка измененных полей и т. д.).
Затем сохранит документ.
В моемответ, я отправил инструкцию по обновлению на mongodb вместо загрузки целых документов с N комментариями в Python, что сэкономит память (RAM) и время.
mongoengine / MongoDB поддерживает обновление поддержки индекса, например
set__comments__1000__comment="blabla"
Чтобы определить положение с помощью переменной, я использовал словарь python и трюк kwargs.