Výsledkem agregačního dotazu je kurzor, jako u běžného find
dotaz. V případě pymongo
CommandCursor
je iterovatelný, takže můžete provést kteroukoli z následujících akcí:
cursor = db.points.aggregate(...)
# Option 1
print(list(cursor))
# Option 2
for document in cursor:
print(document)
Poznámka: jak si všiml
, v obou případech, tj. poté, co vytvoříte seznam z kurzoru nebo iterujete ve smyčce for, nebudete moci kurzor opakovat. V takovém případě se první možnost stane lepší, pokud ji budete chtít použít v budoucnu, protože získaný seznam můžete používat, jak chcete, protože je již v paměti.
Důvod, proč nemůžete zopakuji, že kurzor je ve skutečnosti na serveru a posílá data kousek po bloku a poté, co vám odešle všechna data (nebo se server ukončí), kurzor se zničí.