Hai considerato un approccio come:
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
In alternativa, qualcosa come:
# 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
Fondamentalmente, finché hai RAM sufficiente per memorizzare i tuoi set di risultati, dovresti essere in grado di estrarli dai cursori e tenerli su prima dell'elaborazione. È probabile che non sia significativamente più veloce, ma mitigherà qualsiasi rallentamento in particolare dei cursori e ti libererà di elaborare i tuoi dati in parallelo se sei configurato per questo.