Dokumentacja MongoDB mówi, że możesz podać wartość logiczną limitu czasu, a limit czasu jest fałszywy, nigdy nie przekroczy limitu czasu
collection.find({"type" => "a"}, {:timeout=>false})
W Twoim przypadku:
Record.collection.find({:type=>'a'}, :timeout => false).each ...
Polecam również zajrzeć do mapy zredukowanej z Mongo. Wydaje się, że jest dostosowany do tego rodzaju manipulacji tablicą kolekcji:http://www.mongodb.org/display/DOCS/MapReduce