CouchDB Map/Reduce 看似简单的查询出错

CouchDB Map/Reduce Error on what seems to be a simple query

我有一个非常简单的 map/reduce 我需要完成。我需要获取数据库中所有唯一 docType 值的列表。但是,只要我添加 Reduce 函数,就会出现以下错误:

"Expression does not eval to a function." etc.

我正在遵循 CouchDB Cookbook 和 WIKI 中的示例,这太简单了,所以我不确定为什么会失败。

地图代码如下:

function(doc){ if(doc.docType) emit(doc.docType,1); }

这 returns 每个 docType 还没有任何不同的分组。

reduce 直接来自我见过的样本:

function reduce(key,values){ return null; }

这会立即引发上述错误...我错过了什么?

如有任何帮助,我们将不胜感激。

谢谢!

在 CouchDB 中添加处理函数时,不应包含函数标识符,将其视为匿名函数。 (这与 CouchDB 如何将您的字符串评估为 JS 函数有关,我不知道其中的具体细节)

因此,对于您的 reduce 函数,请省略 reduce 标识符。

function (keys, values) {
  return null;
}