> emit([doc.service, doc.user, doc.item], doc); >
I think emitting the whole doc makes the map much slower but your doc is not that big so I'm not sure whether it should get that much slower. Try with null instead of doc. You can use include_docs=true I think (especially if you don't always need to include all docs.).