Ограничение в получении строк из mongodb из кода ruby - PullRequest
1 голос
/ 26 января 2011

У меня есть код, который получает все записи из коллекции mongodb, а затем выполняет некоторые вычисления.

Моя программа занимает слишком много времени, так как "coll_id.find (). Each do | eachitem | ......." возвращает всего 300 записей одновременно.

Если я помещаю счетчик внутри цикла и проверяю, что он печатает 300 записей, а затем спит в течение 3-4 секунд перед печатью значения счетчика для следующего набора из 300 записей.

coll_id.find().each do |eachcollectionitem|
    puts "counter value for record " + counter.to_s
    counter=counter +1 
            ---- My computations here ----- 
    end

Является ли это ограничением ruby-mongodb api или необходимо выполнить некоторые настройки, чтобы код мог получить доступ ко всем записям в одно мгновение.

1 Ответ

0 голосов
/ 26 января 2011

Насколько велики ваши документы? Возможно, что десериализация занимает много времени. Используете ли вы расширения C (bson_ext)?

Возможно, вы захотите попробовать передать регистратор при подключении. Это может помочь разобраться в том, что происходит. Или вы можете вставить в журнал MongoDB? Что там происходит во время паузы?

...