Het resultaat van een aggregatiequery is een cursor, zoals bij een gewone find
vraag. In het geval van pymongo
de CommandCursor
itereerbaar is, kunt u een van de volgende dingen doen:
cursor = db.points.aggregate(...)
# Option 1
print(list(cursor))
# Option 2
for document in cursor:
print(document)
Opmerking: as arun heeft opgemerkt
, in beide gevallen, d.w.z. nadat u een lijst met de cursor hebt gemaakt of in de for-lus hebt herhaald, kunt u de cursor niet herhalen. In dat geval wordt de eerste optie beter, als u deze in de toekomst wilt gebruiken, omdat u de verkregen lijst zoveel kunt gebruiken als u wilt, omdat deze al in het geheugen zit.
De reden van het niet kunnen herhaal is dat de cursor zich daadwerkelijk op de server bevindt en de gegevens stuk voor stuk verzendt, en nadat het u alle gegevens heeft verzonden (of de server stopt), wordt de cursor vernietigd.