представление couchdb не отвечает, как ожидалось - PullRequest
1 голос
/ 27 апреля 2011

У меня установлен couchdb 0.10 в Ubuntu 10.04. У меня есть это мнение:

function(doc) {
  if (doc.type == "transaction") {
    emit(doc.invoice_id, {id: doc._id, time: doc.time, user_id:doc.user_id});
  }
}

Я вызываю его через указанный параметр get с ключом = 247:

    http://127.0.0.1:5984/test/_design/sfCouch/_view/find_by_invoice_id?key=247

В БД у меня есть документ, соответствующий invoice_id = 247:

{
   "_id": "1357b381d8c22aa193f42de54e400d16",
   "_rev": "2-778ea588fa449851bbab6cfa9fa91bfa",
   "type": "transaction",
   "user_id": "1",
   "invoice_id": "247",
   "time": 1303895611.37
}

но строки не возвращаются из вида:

{"total_rows":4,"offset":1,"rows":[]}

это мой проектный документ:

{
   "_id": "_design/sfCouch",
   "_rev": "11-95c82a9d562b3aa1470a02de943f49db",
   "language": "javascript",
   "views": {
       "find_by_invoice_id": {
           "map": "function(doc) {\u000d\u000a  if (doc.type == \"transaction\") {\u000d\u000a    emit(doc.invoice_id, {id: doc._id, time: doc.time, user_id:doc.user_id});\u000d\u000a  }\u000d\u000a}"
       }
   }
}

Я что-то упустил?

1 Ответ

4 голосов
/ 27 апреля 2011

Поскольку ключ invoice_id является строкой, ключ необходимо указать также в виде строки в кодировке JSON.

Попробуйте:

http://127.0.0.1:5984/test/_design/sfCouch/_view/find_by_invoice_id?key=%22247%22

(знак% 22 - это кодированный URL)

Если это тоже не поможет, вы можете опубликовать вывод:

http://127.0.0.1:5984/test/_design/sfCouch/_view/find_by_invoice_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...