CouchDB Находят Один не работой

Я - 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

5
задан Andrew 27 March 2010 в 17:06
поделиться

2 ответа

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

/by_date?key='"2009/01/30%2015:52:20"'
1
ответ дан 13 December 2019 в 22:05
поделиться

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"}
]}
9
ответ дан 13 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: