I documenti di MongoDB dicono che puoi passare un booleano di timeout e il timeout è falso, non scadrà mai
collection.find({"type" => "a"}, {:timeout=>false})
Nel tuo caso:
Record.collection.find({:type=>'a'}, :timeout => false).each ...
Ti consiglio anche di esaminare la mappa ridotta con Mongo. Sembra fatto su misura per questo tipo di manipolazione dell'array di raccolta:http://www.mongodb.org/display/DOCS/MapReduce