require 'rubygems'
require 'couchrest'

# set the source db and map view
source = CouchRest.new("http://127.0.0.1:5984").database('source-db')
source_view = 'mydesign/view-map'

# set the target db
target = CouchRest.new("http://127.0.0.1:5984").database('target-db')


pager = CouchRest::Pager.new(source)

# pager will yield once per uniq key in the source view

pager.key_reduce(source_view, 10000) do |key, values|
  # create a doc from the key and the values
  example_doc = {
    :key => key,
    :values => values.uniq
  }

  target.save(example_doc)
  
  # keep us up to date with progress
  puts k if (rand > 0.9)
end