Sudahkah Anda mempertimbangkan pendekatan seperti:
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
Sebagai alternatif, sesuatu seperti:
# 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
Pada dasarnya, selama Anda memiliki RAM yang cukup untuk menyimpan set hasil Anda, Anda harus dapat menariknya dari kursor dan menahannya sebelum memproses. Ini mungkin tidak lebih cepat secara signifikan, tetapi ini akan mengurangi pelambatan apa pun khususnya pada kursor, dan membebaskan Anda untuk memproses data secara paralel jika Anda menyiapkannya.