Я - couchDB новичок и делаю примеры в руководстве O'Reilly CouchDB.
У меня есть проблема с помощью представления для получения документа ключом:
curl http://127.0.0.1:5984/basic/_design/example/_view/by_date?key="2009/01/15 15:52:20"
дает ответ:
curl: (52) Empty reply from server
но просто получение всех строк:
curl http://127.0.0.1:5984/basic/_design/example/_view/by_date
дает мне 3 строки включая определенную строку, которую я ищу:
{"идентификатор": "привет мировой", "ключевой": "15.01.2009 15:52:20", "значение": "Привет Мир"}
почему ключ не запрашивает работу?
Я использую версию 0.10.0 CouchDB на Ubuntu 9.10
Это сработало, я заключил ключевую строку в одинарные кавычки и закодировал пробел, поэтому запрос стал следующим:
/by_date?key='"2009/01/30%2015:52:20"'
CouchDB ожидает, что параметр start_key
будет корректным JSON-совместимым типом, таким как "a string"
или 12345
или ["an", "array", "with", 5.0, "elements"]
. Если вы проверите журналы CouchDB, вы, вероятно, увидите запись 400
(плохой запрос клиента), потому что ваш ключ либо недействительный UTF8, либо недействительный JSON.
Вероятно, у вас две проблемы:
Оболочка интерпретирует ваши кавычки, которые на самом деле должны быть отправлены в CouchDB. Попробуйте заключить в одинарные кавычки вашу строку с двойными кавычками.
Возможно, вам также нужно закодировать ваш ключ, чтобы он был действительным URL. В частности, замените пробел на %20
Если собрать все это вместе, то следующее работает для меня на CouchDB 0.11 на Ubuntu 9.10.
$ curl http://127.0.0.1:5984/blog/_design/docs/_view/by_date?key='"2009/01/30%2018:04:11"'
{"total_rows":1,"offset":0,"rows":[
{"id":"biking","key":"2009/01/30 18:04:11","value":"Biking"}
]}