Given some node data, like:

{"_id":"node_latte_local","_rev":"3095317047","name":"latte.local","attributes":{"sp_current_processor_speed":"2.4 GHz","kernel":"Darwin","sp_serial_number":"W88153RWYJX","sp_smc_version":"1.27f1","macosx_productname":"Mac OS X","hardwaremodel":"i386","sp_boot_rom_version":"MBP41.00C1.B03","operatingsystemrelease":"9.3.0","ipaddress":"192.168.22.7","sp_os_version":"Mac OS X 10.5.3 (9D34)","sp_kernel_version":"Darwin 9.3.0","macosx_productversion":"10.5.3","ps":"ps -auxwww","sp_uptime":"up 6:13:43:13","kernelrelease":"9.3.0","sp_boot_mode":"normal_boot","fqdn":"latte.local","domain":"local","sp_packages":1,"macosx_buildversion":"9D34","sp_l2_cache":"3 MB","sp_boot_volume":"Macintosh HD","sp_machine_name":"MacBookPro","sp_local_host_name":"latte","sp_bus_speed":"800 MHz","sp_physical_memory":"4 GB","sshrsakey":"AAAAB3NzaC1yc2EAAAABIwAAAQEAr3ZIJusU+7\/cbCyJ3hRp6MmqpmvTPl5beAuergDEcDnJ75xlt+\/0V6C7kPmgNY2FMytO0wTj\/myAd7Ylf2hVwMRq63Cdb\/0LLAln0luiqfcLLQtZFJnhn4txV0RxtdNoaXj7rFohBHIxDJ9EAzWmNSm9tCQOY4ro65qsGLUU4YXfhcLJw4LSbsYJa8jVThb\/tbcwZz6D+m4m2\/lRvpXhY7cAj\/dP12b3DY3v3tKl0GaELZtGuEt49S7SPPq05YfL6X1JfAd6l29FfkxGStMa\/K8rg1Hmh0PJM5WQZcm+0tr9nllLLIMMf4rk2JznnFyB64NOMt97qIhtM1v7NP4pgw==","sp_user_name":"Adam Jacob (adam)","owner":"Adam Jacob","owner":"Adam Jacob","sp_cpu_type":"Intel Core 2 Duo","sp_mmm_entry":{"MMM_state":"MMM_enabled"},"sp_machine_model":"MacBookPro4,1","hostname":"latte","rubyversion":"1.8.6","facterversion":"1.3.7","macaddress":"00:1f:f3:4e:16:ab","operatingsystem":"Darwin","sp_number_processors":2,"sshdsakey":"AAAAB3NzaC1kc3MAAACBAOzWvVwoQ0HQGtXq42x8L8Wn9rgjbVEAx3h3Uu9jMHA6ftZRiSJizgQlnoLjLkAiUARQUEho\/TJWdCx\/TQkWnIcrGjkPhGrovzq9212w5x8shYA3qPTppwtajenOEKJFjNSqW\/i8dHkansUrGv5V49zc9KVfJ+SUkVP3CXAGndTHAAAAFQCG6h9qRnwjUhRYERqx+BJmOr3RCwAAAIByJIWvZ8qeK28S1b+ERfy0+1jVVYCqFkJfuKp3nQLi7bF21w\/C0SVf9Nkpo0Ecw7hufGgyCo3XsxayedSrNQgy954aTiyqdCxakhwECIWBaNuWLTRb5oMcbzvkr\/JLRNR8cOJrIb5d7KMAGrU29mZ\/0smFptikGz2tc1scqP26aQAAAIEA2Gcgs3wsPa36a75qS7mkE8paDAEgiBAq64OUkkLSy6lmNNtGW0IApPYOC91S0L01aODhtJqB2txHOSP6GokxgrKTcoA5fGwYbxrGw7pddCDP+5AU8JghVIwF\/Z9hGkhCk2ZQi8YUJW0lpJzEQqZmJ\/XShaayeR2kbHOj4\/g0BOQ="}}

You might have two views, "all" and "all_ids"

"all" => {
"map" => <<-EOJS
function(doc) {
if (doc.type == "node") {
emit(doc.name, doc);
}
}
EOJS
},
"all_id" => {
"map" => <<-EOJS
function(doc) {
if (doc.type == "node") {
emit(doc.name, doc.name);
}
}
EOJS
},

Or all FQDNs

"fqdn" => {
"map" => <<-EOJS
function(doc) {
if (doc.type == "node") {
emit(doc.fqdn, doc.fqdn);
}
}
EOJS
}

You can imagine if you had different object types in the same data set, how you could write a function that emits the right data. None of these use reduce functions, but that's the gist.