Heb je een aanpak overwogen als:
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
Als alternatief zoiets als:
# 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
Kortom, zolang je RAM genoeg hebt om je resultatensets op te slaan, zou je ze van de cursors moeten kunnen trekken en vasthouden voordat je ze verwerkt. Dit zal waarschijnlijk niet significant sneller zijn, maar het zal de vertraging van de cursors verminderen, en u kunt uw gegevens parallel verwerken als u daarvoor bent ingesteld.