Wynikiem zapytania agregującego jest kursor, tak jak w przypadku zwykłego find
zapytanie. W przypadku pymongo
CommandCursor
jest iterowalny, więc możesz wykonać dowolną z następujących czynności:
cursor = db.points.aggregate(...)
# Option 1
print(list(cursor))
# Option 2
for document in cursor:
print(document)
Uwaga: jako arun zauważył
, w obu przypadkach, tj. po utworzeniu listy z kursora lub iteracji w pętli for, nie będzie można powtórzyć iteracji nad kursorem. W takim przypadku pierwsza opcja staje się lepsza, jeśli chcesz z niej skorzystać w przyszłości, ponieważ z otrzymanej listy możesz korzystać do woli, ponieważ jest już w pamięci.
Powód braku możliwości powtarzam, że kursor znajduje się w rzeczywistości na serwerze i wysyła dane kawałek po kawałku, a po wysłaniu wszystkich danych (lub zakończeniu działania serwera) kursor zostaje zniszczony.