2011-01-26 72 views
1

我有一個代碼,它從一個mongodb的集合中獲取所有記錄,然後執行一些計算。從紅寶石代碼中檢索mongodb中的行的限制

由於「coll_id.find()。each | eachitem | .......」在一瞬間只返回300條記錄,所以我的程序需要很長時間。

如果我把內循環的計數器,並檢查它打印300條記錄,然後打印的下一組300個記錄計數器值睡覺前大約3到4秒..

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

這是一個限制ruby-mongodb api或需要完成一些配置,以便代碼可以在一瞬間訪問所有記錄。

回答

0

你的文件有多大?這很可能是非傳染性疾病需要很長時間。你在使用C擴展名(bson_ext)嗎?

您可能想在連接時嘗試傳遞記錄器。這可以幫助我們分析正在發生的事情。或者,您可以粘貼MongoDB日誌嗎?暫停期間發生了什麼?