A partire da mongoengine v0.9 (che è attualmente in fase di sviluppo), potrai utilizzare aggregate() , come hai suggerito:https://docs.mongoengine.org/ apireference.html#mongoengine.queryset.QuerySet.aggregate
Fino ad allora, devi fare affidamento su pymongo :Query di aggregazione Flask-MongoEngine e PyMongo