Kết quả của một truy vấn tổng hợp là một con trỏ, như đối với một find
thông thường truy vấn. Trong trường hợp pymongo
CommandCursor
có thể lặp lại, do đó bạn có thể thực hiện bất kỳ thao tác nào sau đây:
cursor = db.points.aggregate(...)
# Option 1
print(list(cursor))
# Option 2
for document in cursor:
print(document)
Lưu ý: as arun đã nhận thấy
, trong cả hai trường hợp, tức là sau khi bạn tạo danh sách ngoài con trỏ hoặc lặp lại trong vòng lặp for, bạn sẽ không thể lặp lại qua con trỏ. Trong trường hợp đó, tùy chọn đầu tiên sẽ trở nên tốt hơn, nếu bạn muốn sử dụng nó trong tương lai, vì bạn có thể sử dụng danh sách thu được tùy thích, vì nó đã có trong bộ nhớ.
Lý do của việc không thể nhắc lại rằng con trỏ thực sự ở trên máy chủ và nó gửi từng đoạn dữ liệu, và sau khi nó đã gửi cho bạn tất cả dữ liệu (hoặc máy chủ kết thúc), con trỏ sẽ bị phá hủy.