4

我得到了这个代码

 {
    "_id": "_design/test",
    "_rev": "10-651aa6314effdad0bca00fc4a3da38f6",
    "views": {
       "foo": {
           "map": "(function(doc){ emit(doc._id, doc._rev)})"
       },
       "bar": {
           "map": "(function(doc){if(doc.date && doc.title) {emit(doc.date, doc.title);})"
       }
      }
    }

为什么它返回:

表达式不评估函数。((new String("(function(doc){if(doc.date && doc.title) {emit(doc.date, doc.title);})")))

4

1 回答 1

1

我知道这个问题很老,答案实际上在问题的评论中,但似乎应该有一个已发布的答案。

缺少函数的最后一个花括号。缩进后,如下所示:

function(doc) {
  if (doc.date && doc.title) {
    emit(doc.date, doc.title);
  }
}

请注意单行版本中末尾的两个大括号:

function(doc){if(doc.date && doc.title){emit(doc.date, doc.title);}}

我更喜欢缩进和使用空格,所以我不会错过这些东西。

于 2015-04-24T21:52:55.753 回答