CouchDB Find One не работает - PullRequest
       10

CouchDB Find One не работает

5 голосов
/ 27 марта 2010

Я новичок в 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 строки, включая конкретную строку, которую я ищу:

{"id": "hello-world", "key": "2009/01/15 15:52:20", "value": "Hello World"}

почему не работает ключевой запрос?

Я использую CouchDB версии 0.10.0 в Ubuntu 9.10

Ответы [ 2 ]

9 голосов
/ 27 марта 2010

CouchDB ожидает, что параметр start_key является допустимым JSON-совместимым типом, таким как "a string" или 12345 или ["an", "array", "with", 5.0, "elements"]. Если вы проверите свои журналы CouchDB, вы, вероятно, увидите запись 400 (неверный запрос клиента), потому что ваш ключ неверный UTF8 или неверный JSON.

У вас, вероятно, есть две проблемы:

  1. Оболочка интерпретирует ваши кавычки, которые на самом деле должны быть отправлены в CouchDB. Попробуйте заключить в двойные кавычки строку.

  2. Возможно, вам также необходимо закодировать ключ так, чтобы он был действительным 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"}
]}
1 голос
/ 28 марта 2010

Это сработало, я заключил в кавычки строку ключа и закодировал символ пробела, поэтому запрос стал:

/by_date?key='"2009/01/30%2015:52:20"'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...