Я недавно начал тестировать MongoDB через оболочку и через PyMongo.Я заметил, что возврат курсора и попытка его перебрать кажется узким местом в реальной итерации.Есть ли способ вернуть более одного документа во время итерации?
Псевдокод:
for line in file:
value = line[a:b]
cursor = collection.find({"field": value})
for entry in cursor:
(deal with single entry each time)
Я надеюсь сделать что-то вроде этого:
for line in file
value = line[a:b]
cursor = collection.find({"field": value})
for all_entries in cursor:
(deal with all entries at once rather than iterate each time)
Я пытался использовать batch_size () в соответствии с этим вопросом и полностью изменять значение до 1000000, но, похоже, это не дает никакого эффекта (или я делаю это неправильно).
Любая помощь очень ценится.Пожалуйста, будьте осторожны с этим новичком в Монго!
--- EDIT ---
Спасибо, Калеб.Я думаю, вы указали на то, что я действительно пытался спросить, а именно: есть ли способ выполнить команду типа collection.findAll()
или, может быть, cursor.fetchAll()
, как в случае с модулем cx_Oracle?Проблема не в хранении данных, а в их извлечении из БД Mongo как можно быстрее.
Насколько я могу судить, скорость, с которой мне возвращаются данные, определяется моей сетью, посколькуМонго должен выбирать каждую запись по одному, верно?