Ruby と Mongo は初めてで、Twitter データを扱っています。Ruby 1.9.3 と Mongo gem を使用しています。
Mongo から大量のデータをクエリし、いくつかのドキュメントを除外し、残りのドキュメントを処理 (新しいフィールドを挿入) してから、新しいドキュメントを Mongo に書き込みます。
以下のコードは機能していますが、.each を使用してループし、新しいドキュメントを一度に 1 つずつ Mongo に挿入するため、実行速度が比較的遅くなります。
私の質問: これをどのように構造化して処理し、一括で挿入できますか?
cursor = raw.find({'user.screen_name' => users[cur], 'entities.urls' => []},{:fields => params})
cursor.each do |r| 
  if r['lang'] == "en"
    score = r['retweet_count'] + r['favorite_count']
    timestamp = Time.now.strftime("%d/%m/%Y %H:%M")
    #Commit to Mongo
    @document = {:id => r['id'],
                :id_str => r['id_str'],
                :retweet_count => r['retweet_count'],
                :favorite_count => r['favorite_count'],
                :score => score,    
                :created_at => r['created_at'],
                :timestamp => timestamp,
                :user => [{:id => r['user']['id'],
                           :id_str => r['user']['id_str'],
                           :screen_name => r['user']['screen_name'],
                          }
                         ]
                }
    @collection.save(@document)   
    end #end.if
end #end.each
どんな助けでも大歓迎です。