Il risultato di una query di aggregazione è un cursore, come per un normale find
interrogazione. In caso di pymongo
il CommandCursor
è iterabile, quindi puoi eseguire una delle seguenti operazioni:
cursor = db.points.aggregate(...)
# Option 1
print(list(cursor))
# Option 2
for document in cursor:
print(document)
Nota: come arun ha notato
, in entrambi i casi, ovvero dopo aver creato un elenco dal cursore o aver eseguito un'iterazione nel ciclo for, non sarà possibile ripetere l'iterazione sul cursore. In tal caso la prima opzione diventa migliore, se si desidera utilizzarla in futuro, poiché è possibile utilizzare l'elenco ottenuto quanto si vuole, perché è già in memoria.
Il motivo di non poterlo utilizzare ribadire è che il cursore è effettivamente sul server e invia i dati pezzo per pezzo e dopo che ti ha inviato tutti i dati (o il server è terminato) il cursore viene distrutto.