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