couchdb: карта в проектном документе дает compilation_error - PullRequest
7 голосов
/ 27 января 2012

Я использую Couchdb 1.1.1 в тестировании Debian

, и у меня есть этот проектный документ в базе данных

{
 "_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]);})"

Ответы [ 3 ]

10 голосов
/ 28 января 2012

Хорошо, в списке рассылки я обнаружил, что необходимо заключить функцию в скобки "()", потому что что-то изменилось в более новой spidermonkey

Таким образом, функция карты выглядит так: "map": "(function (doc) {emit ([doc._id, doc._rev]);}) "

0 голосов
/ 15 марта 2015

Если вы получили эту ошибку, будьте осторожны, чтобы дизайн документа был правильно структурирован. (Я получил подобное сообщение из-за глупой ошибки в моем shows определении.)

Также, не уверен, что это проблема, но я не думаю, что в фигурных скобках в определении функции должен быть пробел.

0 голосов
/ 27 января 2012

Внутри функции карты нет оператора возврата. Ваша функция карты должна что-то возвращать.

Если вам нужно получить необработанный дамп всех документов, для этого есть встроенная функция: http://wiki.apache.org/couchdb/HTTP_Document_API#all_docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...