Документите на MongoDB казват, че можете да подадете булева стойност за изчакване и времето за изчакване е фалшиво, никога няма да изтече
collection.find({"type" => "a"}, {:timeout=>false})
Във вашия случай:
Record.collection.find({:type=>'a'}, :timeout => false).each ...
Също така ви препоръчвам да разгледате намалената карта с Mongo. Изглежда, че е направено специално за този вид манипулация на масиви от колекции:http://www.mongodb.org/display/DOCS/MapReduce