क्या आपने इस तरह के दृष्टिकोण पर विचार किया है:
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
वैकल्पिक रूप से, कुछ ऐसा:
# 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
मूल रूप से, जब तक आपके पास अपने परिणाम सेट को संग्रहीत करने के लिए पर्याप्त RAM है, तब तक आप उन्हें कर्सर से खींचने और प्रसंस्करण से पहले उन्हें पकड़ने में सक्षम होना चाहिए। यह बहुत तेज़ होने की संभावना नहीं है, लेकिन यह विशेष रूप से कर्सर की किसी भी मंदी को कम कर देगा, और यदि आप इसके लिए सेट अप हैं तो आपको समानांतर में अपने डेटा को संसाधित करने के लिए मुक्त कर देगा।