нулевой ключ из карты/уменьшить результат в CouchDB

По какой-то причине я получаю только нулевой ключ от результата map/reduce в CouchDB на Mac

Результат:

{"rows":[
{"key":null,"value":2224}
]}

Я использую CouchApp v8.1 и Couchdb v1.0.2

Моя функция карты:

function(doc) {
    emit(doc.doc_type, 1);
}

Моя функция сокращения:

function(key, values, rereducer) {
  return sum(values);
}

результат, которого я ожидал:

{"rows":[
{"key":"type1","value":22}
{"key":"type2","value":32}
{"key":"type3","value":25}
 //snip snip
]}

Есть идеи, где я ошибся?


person Up.    schedule 22.05.2011    source источник


Ответы (1)


Просто чтобы избавить новичков от боли, через которую я прошел, чтобы получить этот ответ, посмотрите последнюю часть: http://wiki.apache.org/couchdb/HTTP_view_API

Я просто добавляю ?group=true к своему URL-адресу, и результат сокращения был сгруппирован, как и ожидалось, поведение по умолчанию заключается в том, что сокращение выдает одно значение

person Up.    schedule 22.05.2011
comment
+1 Хороший совет! Я всегда добавляю ?reduce=false, даже если у меня нет функции сокращения, просто чтобы быть уверенным. - person JasonSmith; 23.05.2011
comment
@jhs: FWIW, ?reduce=false раньше ломался, когда функция сокращения не была определена, еще в 0.11 (я рад, что это было решено). - person Victor Nicollet; 26.05.2011
comment
Не понимаю, этого нет в запросе по умолчанию... Также не упоминается в doc.couchbase.com... - person L. Holanda; 09.03.2016
comment
Вы спасли мой день. Спасибо! - person Václav Hodek; 20.02.2017
comment
Дневная заставка. Спасибо! - person Ignacio Acuña; 08.06.2021