MongoDB-dokumenten säger att du kan passera i en boolean timeout, och den timeout är falsk, den kommer aldrig att timeout
collection.find({"type" => "a"}, {:timeout=>false})
I ditt fall:
Record.collection.find({:type=>'a'}, :timeout => false).each ...
Jag rekommenderar också att du tittar på map-reduced med Mongo. Det verkar skräddarsytt för den här typen av samlingsarraymanipulation:http://www.mongodb.org/display/DOCS/MapReduce