Започвайки с mongoengine v0.9 (който в момента се разработва), ще можете да използвате aggregate() , както предложихте:https://docs.mongoengine.org/ apireference.html#mongoengine.queryset.QuerySet.aggregate
Дотогава трябва да разчитате на pymongo :Заявка за агрегиране на Flask-MongoEngine &PyMongo