Недавно я начал тестировать 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, но, похоже, это не имеет никакого эффекта (или я делаю это неправильно).
Любая помощь приветствуется. Пожалуйста, будьте осторожны с этим новичком в Монго!
--- РЕДАКТИРОВАТЬ ---
Спасибо, Калеб. Думаю, вы указали, о чем я действительно пытался спросить, а именно: есть ли способ сделать что-то вроде collection.findAll ()
или, может быть, cursor.fetchAll ()
, как там с модулем cx_Oracle? Проблема не в хранении данных, а в их максимально быстром извлечении из базы данных Mongo.
Насколько я могу судить, скорость, с которой мне возвращаются данные, диктуется моей сетью, поскольку Mongo должна однократная выборка каждой записи, правильно?