PyMongo - итерация курсора

Недавно я начал тестировать 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 должна однократная выборка каждой записи, правильно?

21
задан Community 23 May 2017 в 12:00
поделиться