A partir do mongoengine v0.9 (que está atualmente em desenvolvimento), você poderá usar
aggregate()
, como você sugeriu:http://docs.mongoengine.org/ apireference.html#mongoengine.queryset.QuerySet.aggregate
Até lá, você precisa confiar no
pymongo
:Consulta de agregação Flask-MongoEngine e PyMongo