Der eigentliche .aggregate()
-Methode selbst nicht "asynchron". Aber die Cursor-Iteration ist.
Also stattdessen:
cursor = db.activities.aggregate(pipeline)
while (yield cursor.fetch_next):
doc = cursor.next_object()
print(doc)
Genau wie die Dokumentation sagt.