我在Debian测试中使用Couchdb 1.1.1
我在数据库中有这个设计文档
{
"_id": "_design/Page",
"_rev": "9-1944cdebabf20ae569eab7b534b43e67",
"views": {
"all": {
"map": "function(doc) {}"
}
},
"language": "javascript"
}
但我仍然进入http://localhost:5984/db_development/_design/Page/_view/all
这{"error":"compilation_error","reason":"Expression does not eval to a function. ((new String(\"function(doc) {}\")))"}
我尝试在spidermonkey-bin解释器中运行不同的简单映射函数,并且它们已正确加载,但在couchdb中出现相同的错误
我真的无法看到问题出在哪里......
好的,在邮件列表中我发现需要将函数包装到括号"()",因为在较新的spidermonkey中发生了一些变化
因此map函数如下所示:"map": "(function(doc) { emit([doc._id, doc._rev]);})"
答案 0 :(得分:10)
好的,在邮件列表中我发现需要将函数包装到括号“()”中,因为更新的spidermonkey中的某些内容已经发生了变化
因此map函数如下所示:“map”:“(function(doc){emit([doc._id,doc._rev]);})”
答案 1 :(得分:0)
如果出现此错误,请注意设计文档的结构是否正确。 (由于我的shows
定义中出现了一个愚蠢的错误,我收到了这样的消息。)
另外,不确定这是一个问题,但我认为在函数定义的大括号之前应该没有空格。
答案 2 :(得分:-3)
map函数中没有return语句。你的地图功能需要返回一些东西。
如果您需要获取所有文档的原始转储,则有一个内置功能:http://wiki.apache.org/couchdb/HTTP_Document_API#all_docs