У меня есть несколько документов, которые выглядят так:
{userId: 123, msg: {timestamp: 123456, event: "actionA"}}
{userId: 123, msg: {timestamp: 123466, event: "actionB"}}
и т. д.
Map fn:
emit (doc.userId, [doc.msg])
Reduce fn:
return [] .concat.apply ([], vs)
Эти функции, кажется, делают то, что я ожидал, поэтому я Думал, что увижу такой вывод:
Ключ: 123, Значение: [{timestamp: 123456, event: "actionA"}, {timestamp: 123466, event: "actionB"}, ... и т. д. .]
Но я получаю ошибку переполнения : «Сокращение вывода должно сокращаться быстрее». Действительно, в документах couchdb говорится, что «Как правило, функция сокращения должна сводиться к единственному скалярному значению. "..." CouchDB выдаст предупреждение, если вы пытаетесь использовать сокращение «не в ту сторону» ».
Итак, я полагаю, что использую Couch MR "неправильно". Каким будет «правильный способ» выполнить такие вычисления?