Har du overvejet en tilgang som:
for line in file
value = line[a:b]
cursor = collection.find({"field": value})
entries = cursor[:] # or pull them out with a loop or comprehension -- just get all the docs
# then process entries as a list, either singly or in batch
Alternativt noget som:
# same loop start
entries[value] = cursor[:]
# after the loop, all the cursors are out of scope and closed
for value in entries:
# process entries[value], either singly or in batch
Dybest set, så længe du har RAM nok til at gemme dine resultatsæt, bør du være i stand til at trække dem væk fra markørerne og holde fast i dem før behandling. Dette vil sandsynligvis ikke være væsentligt hurtigere, men det vil afbøde enhver opbremsning specifikt af markørerne og frigøre dig til at behandle dine data parallelt, hvis du er indstillet til det.