I might be dumb but I have two cursor objects returned by query result users
and locations
user_count = 0
location_count = 0
for user in users:
print(user) ## prints every object correctly
user_count = user_count 1
for location in locations:
print(location) ##only loops once on the first user
location_count = location_count 1
print(user_count, location_count) ## 1720 39
the inner loop user seems only executed once while the outer loop behaves as expected.
the output of the above code:
#prints the first user
#prints all locations
#prints all remaining users
! missing locations
CodePudding user response:
If locations
is a cursor, it will be an iterable, not a list, array, or dict. It will be traversed with next
, and MongoDB cursors do not provide any reset
or rewind
.
After it loops through for the first user, the cursor is exhausted, so for the subsequent users the loop ends immediately.
You might try reading the cursor into a list before the loop, like
locations = list(db.collection.find())
The you should be able to loop over that list multiple times.